Erlang est dynamiquement typé.
Ce que tu vois, ce sont des "guardes", qui permettent de sélectionner la clause de la fonction qui sera exécutée. Ce sont des conditions d'exécution.
Les guardes peuvent portés sur les quelques types Erlang, sur la nature d'une structure de données, mais également permettent de vérifier certaines caractéristiques des paramètres de la fonction, comme par exemple le fait qu'une valeur soit strictement supérieure à zéro, ou bien comprise dans une plage de valeurs.
Ces conditions sont vérifiées lors de l'exécution.
Par exemple:
is_negatif(Valeur) when Valeur < 0 ->
true;
is_negatif(Valeur) ->
false.
Renvoie 'true' si on lui passe un nombre négatif et 'false' dans le cas contraire. Ce peut être une manière d'implémenter les conditions en Erlang. C'est pour cela que dans le bouquin j'explique l'importance des fonctions et leur omniprésence. Il faut bien maîtriser en Erlang tout ce que l'on peut faire à l'aide des fonctions.
[^] # Re: Sytème de types
Posté par Mickaël Rémond . En réponse à la dépêche La programmation clusterisée à la portée de tous ? Un livre sur Erlang. Évalué à 1.
Mickaël