Lazy Library

October 4, 2016 ยท View on GitHub

The (scheme lazy) library exports procedures and syntax keywords for lazy evaluation.

For more information see the R7RS Scheme Specification.

delay

(delay {expression})

Return a promise object that can be asked in the future (via force) to evaluate {expression} and return the result.

force

(force promise)

Force the value of a promise.

delay-force

(delay-force {expression})

make-promise

(make-promise obj)

Return a promise which will return obj when forced. This function is similar to delay but does not delay its argument: it is a procedure rather than syntax. If obj is already a promise, it is returned.

promise

(promise? obj)

Returns #t if object is a promise, and #f otherwise.