diff options
author | Boris Verkhovskiy <boris.verk@gmail.com> | 2024-04-20 22:52:07 -0700 |
---|---|---|
committer | Boris Verkhovskiy <boris.verk@gmail.com> | 2024-04-20 22:53:01 -0700 |
commit | 12cb60f1b72bfe3593e1429d274b58ed60a39f14 (patch) | |
tree | 517be3579f51bc3143f4fcfb7e0ea60930b2d615 /fr-fr | |
parent | c9f7d9a92c9561c3bd45c263c4f0e9d0e99c713b (diff) |
spaces in code and link spans
Diffstat (limited to 'fr-fr')
-rw-r--r-- | fr-fr/elixir-fr.html.markdown | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/fr-fr/elixir-fr.html.markdown b/fr-fr/elixir-fr.html.markdown index 1de75152..b38afda2 100644 --- a/fr-fr/elixir-fr.html.markdown +++ b/fr-fr/elixir-fr.html.markdown @@ -11,8 +11,7 @@ filename: learnelixir-fr.ex lang: fr-fr --- Elixir est un langage de programmation fonctionnel moderne reposant sur la machine virtuelle BEAM, qui héberge aussi Erlang. -Il est totalement compatible avec Erlang mais dispose d'une syntaxe plus agréable et apporte de nouvelles fonctionnalités. - +Il est totalement compatible avec Erlang mais dispose d'une syntaxe plus agréable et apporte de nouvelles fonctionnalités. ```elixir # Un commentaire simple sur une seule ligne commence par un dièse. @@ -30,21 +29,21 @@ Il est totalement compatible avec Erlang mais dispose d'une syntaxe plus agréab ## --------------------------- # Il y a les nombres -3 # Integer +3 # Integer 0x1F # Integer 3.0 # Float -# Les atomes, des littéraux, qui sont des constantes avec comme valeur leur nom. +# Les atomes, des littéraux, qui sont des constantes avec comme valeur leur nom. # Ils commencent par `:`. :hello # atom -# Il existe également des n-uplets dont les valeurs sont stockés de manière contiguë +# Il existe également des n-uplets dont les valeurs sont stockés de manière contiguë # en mémoire. {1,2,3} # tuple -# Il est possible d'accéder à un element d'un tuple avec la fonction +# Il est possible d'accéder à un element d'un tuple avec la fonction # `elem`: elem({1, 2, 3}, 0) #=> 1 @@ -56,10 +55,10 @@ elem({1, 2, 3}, 0) #=> 1 head #=> 1 tail #=> [2,3] -# En Elixir, comme en Erlang, le `=` dénote un 'pattern matching' +# En Elixir, comme en Erlang, le `=` dénote un 'pattern matching' # (Filtrage par motif) et non une affectation. -# Cela signifie que la partie de gauche (pattern) est comparé (match) à -# la partie de droite. +# Cela signifie que la partie de gauche (pattern) est comparé (match) à +# la partie de droite. # Une erreur sera lancée si aucun model (match) est trouvé. @@ -151,7 +150,7 @@ nil && 20 #=> nil 1 != 1 #=> false 1 < 2 #=> true -# `===` et `!==` sont plus stricts en comparant les Integers (entiers) +# `===` et `!==` sont plus stricts en comparant les Integers (entiers) # et les Floats (nombres à virgules) : 1 == 1.0 #=> true 1 === 1.0 #=> false @@ -177,7 +176,7 @@ else end # Condition avec `unless` (sauf). -# Il correspond à la négation d'un `if` (si) +# Il correspond à la négation d'un `if` (si) unless true do "Cela ne sera pas vu" else @@ -223,11 +222,11 @@ cond do 2 * 5 == 12 -> "Moi non plus" true -> - "Mais moi oui (représente un else)" + "Mais moi oui (représente un else)" end -# `try/catch` est utilisé pour attraper les valeurs rejetées. -# Il supporte aussi un +# `try/catch` est utilisé pour attraper les valeurs rejetées. +# Il supporte aussi un # `after` qui est appelé autant si une valeur est jetée ou non. try do throw(:hello) @@ -299,8 +298,8 @@ end PrivateMath.sum(1, 2) #=> 3 # PrivateMath.do_sum(1, 2) #=> ** (UndefinedFunctionError) -# La déclaration de fonction supporte également les guards (gardes) -# et les clauses. +# La déclaration de fonction supporte également les guards (gardes) +# et les clauses. # Quand une fonction avec plusieurs clauses est appelée, # la première fonction dont la clause est satisfaite par les arguments sera appelée. # Exemple: le code `area({:circle, 3})` appelle la deuxième fonction definie plus bas, @@ -346,7 +345,7 @@ defmodule MyMod do end # L'opérateur pipe (|>) permet de passer la sortie d'une expression -# en premier paramètre d'une fonction. +# en premier paramètre d'une fonction. Range.new(1,10) |> Enum.map(fn x -> x * x end) @@ -358,7 +357,7 @@ Range.new(1,10) ## --------------------------- # Les Structs sont des extensions des Maps. -# Apportant en plus les valeurs par defaut, le polymorphisme et +# Apportant en plus les valeurs par defaut, le polymorphisme et # la vérification à la compilation dans Elixir. defmodule Person do defstruct name: nil, age: 0, height: 0 @@ -397,26 +396,26 @@ end ## --------------------------- # Elixir se repose sur le modèle d'acteur pour gérer la concurrence. -# Pour écrire un programme concurrent en Elixir il faut trois -# primitives: spawning processes (création), sending messages (envoi) +# Pour écrire un programme concurrent en Elixir il faut trois +# primitives: spawning processes (création), sending messages (envoi) # et receiving messages (réception). -# Pour débuter un nouveau processus, il faut utiliser +# Pour débuter un nouveau processus, il faut utiliser # la fonction `spawn` qui prend en argument une fonction. f = fn -> 2 * 2 end #=> #Function<erl_eval.20.80484245> spawn(f) #=> #PID<0.40.0> -# `spawn` retourn un pid (identifiant de processus), il est possible +# `spawn` retourn un pid (identifiant de processus), il est possible # d'utiliser ce pid pour envoyer un message au processus. # Pour faire parvenir le message il faut utiliser l'opérateur `send`. -# Pour que cela soit utile il faut être capable de recevoir les +# Pour que cela soit utile il faut être capable de recevoir les # messages. # Cela est possible grâce au mechanisme de `receive`: # Le bloc `receive do` est utilisé pour écouter les messages et les traiter # au moment de la réception. Un bloc `receive do` pourra traiter un seul # message reçu. -# Pour traiter plusieurs messages, une fonction avec un bloc `receive do` +# Pour traiter plusieurs messages, une fonction avec un bloc `receive do` # doit s'appeler elle-même récursivement. defmodule Geometry do @@ -471,7 +470,7 @@ Agent.update(my_agent, fn colors -> ["blue" | colors] end) ## Références * [Guide de debut](http://elixir-lang.org/getting-started/introduction.html) depuis le site [Elixir](http://elixir-lang.org) -* [Documentation Elixir ](https://elixir-lang.org/docs.html) +* [Documentation Elixir](https://elixir-lang.org/docs.html) * ["Programming Elixir"](https://pragprog.com/book/elixir/programming-elixir) de Dave Thomas * [Elixir Cheat Sheet](http://media.pragprog.com/titles/elixir/ElixirCheat.pdf) * ["Learn You Some Erlang for Great Good!"](http://learnyousomeerlang.com/) de Fred Hebert |