[r6rs-discuss] multiple value returns to non-tail positions in `begin' et al
Andy Wingo
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,
Andy
--
http://wingolog.org/
More information about the r6rs-discuss
mailing list