[r6rs-discuss] multiple value returns to non-tail positions in `begin' et al
wingo at pobox.com
Sat Nov 1 15:07:13 EDT 2008
Greetings wranglers of the lambda calculus,
Quoth the R6:
The continuations of all non-final expressions within a sequence of
expressions, such as in lambda, begin, let, let*, letrec, letrec*,
let-values, let*-values, case, and cond forms, usually take an
arbitrary number of values.
Question 1: "Usually"?
Question 2: Why the change from R5, which sayeth:
Except for continuations created by the `call-with-values'
procedure, all continuations take exactly one value.
Question 3: Does anyone's Scheme, R5 or R6, error with the following:
(define (nothing) (values))
((lambda () (nothing) 1))
This seems to be equal to 1 with R6, and undefined in R5. Of special
interest are those schemes that do not construct compound objects for
multiple value returns.
Thank you for any insight,
More information about the r6rs-discuss