Erlang s'utilise entre autres en mode interactif,
dans un interpréteur de commandes (un shell).
L'exemple à droite montre une telle interaction. On remarquera :
- Que chaque instruction se termine par un . (par
exemple X = 123456. est une instruction
complète, alors que Y = 654321
n'en est pas une, ne se terminant pas par un
.)
- Le langage est sensible à la casse (ici,
x et X sont deux entités différentes).
D'ailleurs, les noms des variables doivent
débuter par une majuscule
- Il n'est pas possible d'associer une valeur à une entité
dont le nom débute par une minuscule. On voit ceci à la
ligne 5> où l'expression
x = 3. est tentée mais refusée. Un nom
débutant par une minuscule n'est pas une variable mais bien un
atome, un pur symbole
- Une variable, une fois liée à une valeur, ne peut plus
changer de valeur. Ceci explique la réaction du moteur à
la ligne 6> à droite, lors de
notre tentative d'affecter une deuxième valeur à
X. Remarquez d'ailleurs le message d'erreur, instructif :
no match of right hand side with value 3. Il s'agit du même
message d'erreur que dans le cas de l'instruction précédente
(x = 3.)
- Évidemment, il est possible d'évaluer des expressions
à même le shell. Ceci permet entre autres de constater
qu'Erlang
supporte l'arithmétique exacte (comme le montre l'expression
8>)
|
Erlang R14B (erts-5.8.1.1) [smp:2:2] [rq:2] [async-threads:0]
Eshell V5.8.1.1 (abort with ^G)
1> X=123456.
123456
2> Y = 654321
2> .
654321
3> Z=x*Y
3> .
** exception error: bad argument in an arithmetic expression
in operator */2
called as x * 654321
4> Z = X * Y.
80779853376
5> x = 3.
** exception error: no match of right hand side value 3
6> X = 3.
** exception error: no match of right hand side value 3
7> 123 + 456.
579
8> 123456789*987654321.
121932631112635269
9>
|