Module Lazy
structure Lazy = struct ... end
Deferred computations.
type 'a
status =
| Delayed of (unit -> 'a) |
| Value of 'a |
| Exception of exn |
type 'a
t = 'a status ref
A value of type 'a Lazy.t
is a deferred computation (also called a
suspension) that computes a result of type 'a
. The expression
lazy (expr)
returns a suspension that computes expr
. *
exception Undefined
val force : 'a t -> 'a
Lazy.force x
computes the suspension x
and returns its result.
If the suspension was already computed, Lazy.force x
returns the
same value again. If it raised an exception, the same exception is
raised again.
Raise Undefined
if the evaluation of the suspension requires its
own result.