[erlang/fr] Integrate feedback on PR

This commit is contained in:
Julien Cretel 2015-06-14 13:24:24 +01:00
parent 1aa91a6420
commit 9c6aec3ceb

View File

@ -15,19 +15,21 @@ lang: fr-fr
%%% Trois signes pour cent sont utilisés pour commenter les modules. %%% Trois signes pour cent sont utilisés pour commenter les modules.
% Trois types de ponctuation sont utilisés en Erlang. % Trois symboles de ponctuation sont utilisés en Erlang.
% Les virgules (`,`) servent à séparer les paramètres dans les appels de % Les virgules (`,`) servent à séparer les paramètres dans les appels de
% fonctions, les contructeurs, et les motifs. % fonctions, les contructeurs, et les motifs.
% Les points (`.`) (suivis par des caractères blancs) servent à séparer % Les points (`.`) (suivis par des blancs) servent à séparer les fonctions et
% les fonctions et les expressions dans l'interpréteur. % les expressions dans l'interpréteur.
% Les points-virgules (`;`) servent à séparer les clauses. Ces dernières % Les points-virgules (`;`) servent à séparer les clauses. Ces dernières
% apparaissent dans différent cas de figure : définitions de fonctions et % apparaissent dans différent cas de figure : définitions de fonctions et
% expressions `case`, `if`, `try..catch`, et `receive`. % expressions `case`, `if`, `try..catch`, `receive`.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 1. Variables et filtrage par motif. %% 1. Variables et filtrage par motif
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(L'équivalent anglais de *filtrage par motif* est *pattern patching*.)
Nb = 42. % Chaque nom de variable doit commencer par une lettre majuscule. Nb = 42. % Chaque nom de variable doit commencer par une lettre majuscule.
% Les variables Erlang ne peuvent être affectées qu'une seule fois ; si vous % Les variables Erlang ne peuvent être affectées qu'une seule fois ; si vous
@ -101,7 +103,7 @@ Nom = "Bonjour".
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Les modules constituent l'unité de base d'un programme Erlang. Toutes les % Les modules constituent l'unité de base d'un programme Erlang. Toutes les
% fonctions que l'on écrit sont sauvées dans des modules. Les modules sont % fonctions que l'on écrit sont enregistrées dans des modules. Les modules sont
% enregistrés dans des fichiers avec une extension `.erl`. % enregistrés dans des fichiers avec une extension `.erl`.
% Les modules doivent être compilés afin d'éxecuter le programme. % Les modules doivent être compilés afin d'éxecuter le programme.
% Un module compilé a une extension `.beam`. % Un module compilé a une extension `.beam`.
@ -138,27 +140,27 @@ somme(L) -> somme(L, 0).
somme([], N) -> N; somme([], N) -> N;
somme([T|Q], N) -> somme(Q, T+N). somme([T|Q], N) -> somme(Q, T+N).
% Les funs sont des fonctions "anonymes" ; elles sont appelées ainsi parce % Les `fun`s sont des fonctions "anonymes" ; elles sont appelées ainsi parce
% qu'elles n'ont pas de noms. Cependant, elles peuvent être affectées à des % qu'elles n'ont pas de nom. Cependant, elles peuvent être affectées à des
% variables. % variables.
Doubler = fun(X) -> 2 * X end. % `Doubler` pointe vers une fonction anonyme Doubler = fun(X) -> 2 * X end. % `Doubler` pointe vers une fonction anonyme
% dont le handle est : #Fun<erl_eval.6.17052888> % dont le handle est : #Fun<erl_eval.6.17052888>
Doubler(2). % 4 Doubler(2). % 4
% Les fonctions peuvent prendre des funs comme paramètres et peuvent renvoyer % Les fonctions peuvent prendre des `fun`s comme paramètres et peuvent renvoyer
% des funs. % des `fun`s.
Mult = fun(Fois) -> ( fun(X) -> X * Fois end ) end. Mult = fun(Fois) -> ( fun(X) -> X * Fois end ) end.
Tripler = Mult(3). Tripler = Mult(3).
Tripler(5). % 15 Tripler(5). % 15
% Les listes en compréhension sont des expressions qui créent des listes sans % Les listes en compréhension sont des expressions qui créent des listes sans
% requérir ni funs, ni maps, ni filters. % requérir ni `fun`s, ni maps, ni filters.
% La notation `[F(X) || X <- L]` signifie "la liste des `F(X)``X` est % La notation `[F(X) || X <- L]` signifie "la liste des `F(X)``X` est
% extrait de la liste `L`." % extrait de la liste `L`."
L = [1,2,3,4,5]. L = [1,2,3,4,5].
[2 * X || X <- L]. % [2,4,6,8,10] [2 * X || X <- L]. % [2,4,6,8,10]
% Une liste en compréhension peut avoir des générateurs, ainsi que des gardes, % Une liste en compréhension peut être constituée de générateurs, ainsi que de
% qui sélectionnent un sous-ensemble des valeurs générées. % gardes, qui sélectionnent un sous-ensemble des valeurs générées.
NombresPairs = [N || N <- [1, 2, 3, 4], N rem 2 == 0]. % [2, 4] NombresPairs = [N || N <- [1, 2, 3, 4], N rem 2 == 0]. % [2, 4]
% La garde est un élément syntaxique qui rend le filtrage par motif encore % La garde est un élément syntaxique qui rend le filtrage par motif encore
@ -186,7 +188,7 @@ est_chien(A) -> false.
est_animal(A) when is_atom(A), (A =:= chien) or (A =:= chat) -> true; est_animal(A) when is_atom(A), (A =:= chien) or (A =:= chat) -> true;
est_animal(A) -> false. est_animal(A) -> false.
% Attention : les expressions Erlang valides ne peuvent pas toutes être % Attention : toutes les expressions Erlang valides ne peuvent pas être
% utilisées comme expressions gardes ; en particulier, nos fonctions % utilisées comme expressions gardes ; en particulier, nos fonctions
% `est_chat` et `est_chien` ne sont pas autorisées au sein de la séquence de % `est_chat` et `est_chien` ne sont pas autorisées au sein de la séquence de
% gardes dans la définition de `est_animal`. Pour plus de détails sur les % gardes dans la définition de `est_animal`. Pour plus de détails sur les
@ -317,7 +319,7 @@ self(). % <0.41.0>
``` ```
## Références ## Ressources (en anglais)
* ["Learn You Some Erlang for great good!"](http://learnyousomeerlang.com/) * ["Learn You Some Erlang for great good!"](http://learnyousomeerlang.com/)
* ["Programming Erlang: Software for a Concurrent World" by Joe Armstrong](http://pragprog.com/book/jaerlang/programming-erlang) * ["Programming Erlang: Software for a Concurrent World" by Joe Armstrong](http://pragprog.com/book/jaerlang/programming-erlang)