(rontolisp) docs
← Macros

multiple-value-bind

(multiple-value-bind (var...) values-form body...)

Binds the variables to the values of values-form and evaluates the body. A literal values call supplies all of its values, and the two-value built-ins floor/ceiling/round/truncate (quotient and remainder) and gethash (value and present-p) supply both of theirs. A call to a USER function whose result is a (values ...) call also supplies all of its values: the extra values cross the function boundary through an internal channel the callee's values writes and the consumer reads. Extra variables bind to nil; surplus values are evaluated and discarded. Deviation from Common Lisp: a producer that calls values in a non-tail position and then returns normally may leave stale extra values behind, so prefer values in result position.