Bases & syntaxe
iex> IO.puts("Bonjour, Elixir!")
Bonjour, Elixir!
Affiche du texte dans la console.
Structures de données
Liste
list = [1, 2, 3]
Collection ordonnée d'éléments.
Tuple
tuple = {1, "Deux", true}
Structure immuable avec des éléments hétérogènes.
Fonctions & méthodes essentielles
Définition de fonction
defmodule Math do
def add(a, b), do: a + b
end
Crée une fonction
addqui prend deux arguments et retourne leur somme.
Pattern matching
defmodule Greeter do
def greet({name, "USA"}) when is_binary(name), do: "Hello #{name}, welcome to the USA!"
def greet({name, _}), do: "Hello #{name}"
end
Utilise le pattern matching pour différentes branches de fonction.
Patterns courants
Unpackaging
{first, second} = {10, 20}
IO.inspect(first) # Affiche 10
Destructure un tuple en variables individuelles.
Guards
defmodule Age do
def can_vote(age) when age >= 18, do: true
def can_vote(_), do: false
end
Ajoute des conditions pour les appels de fonction.
Opérations avancées
Enumerables
Enum.map([1, 2, 3], fn x -> x * 2 end)
## Retourne [2, 4, 6]
Utilise
mappour appliquer une fonction à chaque élément d'une liste.
Comprehensions
for n <- 1..5, rem(n, 2) == 0 do
n * n
end
## Retourne [4, 16]
Crée des listes en compréhension avec conditions.
Debugging & outils
Inspect
inspect([a: "b", c: "d"])
## Affiche "{:a, \"b\"}, {:c, \"d\"}"
Affiche une représentation structurée d'une donnée.
Logger
Logger.info("Ceci est un message d'information")
Utilise le logger pour enregistrer des messages de débogage.