Next: scheme basic unspecified behavior, Previous: scheme basic boolean values, Up: scheme basic [Index]
A Scheme expression can evaluate to an arbitrary finite number of values. These values are passed to the expression’s continuation.
Not all continuations accept any number of values. For example, a
continuation that accepts the argument to a procedure call is guaranteed
to accept exactly one value. The effect of passing some other number of
values to such a continuation is unspecified. The
call-with-values
procedure makes it possible to create
continuations that accept specified numbers of return values. If the
number of return values passed to a continuation created by a call to
call-with-values
is not accepted by its consumer that was passed
in that call, then an exception is raised. A more complete description
of the number of values accepted by different continuations and the
consequences of passing an unexpected number of values is given in the
description of the values
procedure.
A number of forms in the base library have sequences of expressions as subforms that are evaluated sequentially, with the return values of all but the last expression being discarded. The continuations discarding these values accept any number of values.