Next: Hash Tables Up: Basic Data Extensions Previous: Procedure Names

# Promises

MzScheme implements `delay` as a macro that expands to `make-promise`. The `force` procedure can only be applied to values returned by `make-promise`, and promises are never implicitly `force`d.

- `(make-promise thunk)` returns a new promise, where thunk is a procedure of zero arguments.
- `(promise? v)` returns `#t` if v is a promise created by `make-promise` or `#f` otherwise.