type 'a
t
'a
Lazy.t
est un calcul différé dont le
résultat sera de type 'a
. On parle aussi de suspension (de
calcul). On suspend le calcul de l'expression expr
au moyen de la syntaxe spéciale lazy (expr)
. « Forcer » la suspension ainsi
construite déclenche donc le calcul de l'expression expr
et retourne le résultat.
exception Undefined
val force : 'a t -> 'a
force x
déclenche un
calcul qui avait été suspendu et retourne le résultat. Si le calcul suspendu
x
a déjà été déclenché,
force x
retourne le même réultat sans
refaire le calcul. Si le calcul lève une exception, la même exception est levée
à nouveau.
L'exception Undefined
est levée si le calcul déclenché par
l'expression force x
fait lui-même appel à
l'expression force x
.