The SUSP signature

This module creates and manipulates suspensions for lazy evaluation.


Synopsis

signature SUSP
structure SMLofNJ.Susp : SUSP

Interface

type 'a susp
val delay : (unit -> 'a) -> 'a susp
val force : 'a susp -> 'a

Description

type 'a susp

delay f
Make a suspension from function f.

force s
If s has never been forced before, evaluate its underlying f function, save the result, and return the result. If s has been previously forced, return the result from last time.