Le typage de CAML V
Déclarations locales
let idf = exp1 in exp2;;
#let z = 1 in z+2;;
- : int = 3
#let y = z+1;;
Entrée interactive:
>let y = z+1;;
> ^
L'identificateur z n'est pas défini.
-
Typage de exp1 (Env |- exp1 : ty1)
-
Ajout du type obtenu à l'environnement Env_loc = ë (idf:ty1) <| Env û
-
Typage de exp2 dans Env_loc (Env' |- exp2 : ty2)
-
L'environnement global est inchangé
(Let) |
Env |- exp1 : t1
ë (idf:t1) <| Env û |- exp2 : t2 |
|
|
Env |- let idf = exp1 in exp2 : t2 |
|
|