Next: Booleans Up: Basic Data Extensions Previous: Basic Data Extensions

# Void and Undefined

MzScheme returns the unique void value -- printed as `#<void>` -- for expressions that have undefined results in R5RS. The procedure `void` takes any number of arguments and returns void:

- `(void v )` returns void.
- `(void? v)` returns `#t` if v is void, `#f` otherwise.

Non-global variables that are accessible but do not yet have a value are bound to the unique undefined value, printed as `#<undefined>`. Such variables are created by `letrec-values` expressions (see section 3.5), partially-initialized objects (see Chapter 6), and partially-invoked units (see Chapter 7).