-
types de base
-
int (entiers relatifs: 3, -4;
opérateurs: +, -, *, /,
mod, ...)
- float (flottants: 0.5, 3.4E4,
4.3e-2; opérateurs: +., -., *.,
/., exp, log, sin, ...)
- bool (valeurs de vérité: true, false;
opérateurs:
&&
(« et »), ||
(« ou »), not
(«
non »); opérateurs de comparaison <
, <=
, >
,
>=
produisent des résultats booléens et s'appliquent sur des
entiers ou des flottants; opérateur d'égalité =
)
- string (chaîne de caractères, portion de texte encadrée
par des guillemets: "salut les copains", "";
opérations:
^
(concaténation, mise bout à bout de deux
chaînes), etc.)
- déclarations globales
On parle de déclaration, définition ou de
liaison.
let ident = expression;;
#let s = 1 + 2 + 3;;
s : int = 6
#let s_carré = s * s;;
s_carré : int = 36
#s_carré;;
- : int = 36
#s_carré - rintintin;;
Entrée interactive:
>s_carré - rintintin;;
> ^^^^^^^^^
L'identificateur rintintin n'est pas
défini.
#let s = 3 * 3;;
s : int = 9
#s_carré;;
- : int = 36
#let s = "pourquoi pas une chaîne";;
s : string = "pourquoi pas une chaîne"
#s^"!!!";;
- : string = "pourquoi pas une chaîne!!!"
- déclarations locales
let ident = expr1 in expr2;;
#let x = 5 * 5 in x + 2;;
- : int = 27
#x;;
Entrée interactive:
>x;;
>^
L'identificateur x n'est pas défini.
#let x = 3;;
x : int = 3
#let x = 5 * 5 in x + 2;;
- : int = 27
#x;;
- : int = 3
#(2*3+6) * (2*3+6) + 2 * (2*3+6) + 5;;
- : int = 173
#let a = 2*3+6 in a * a + 2 * a + 5;;
- : int = 173
#let z=3 in
let t=z+1 in z+t+1;;
- : int = 8
- déclarations simultanées
globales
let ident1 = expr1
and ident2 = expr2;;
ou locales
let ident1 = expr1
and ident2 = expr2 in
expr;;
#let x = 1;;
x : int = 1
#let x = x+1 and y = x;;
x : int = 2
y : int = 1
- expressions conditionnelles
if condition then expression1 else expression2
- utilisation des parenthèses (priorités des opérateurs, levée
d'ambiguité)