[R6RS] summary of decisions regarding multiple values
William D Clinger
will at ccs.neu.edu
Sat Jun 24 06:52:51 EDT 2006
> > (begin E1 E2)
> > and
> > ((lambda (ignored) E2) E1)
> This bit I don't buy at all. (That doesn't imply any opinion on your
> overall point; but as it keeps coming up, I'm commenting.) Your
> choice of that particular transformation seems to be an implementation
> aspect rather than an aspect of the semantics.
The reason this particular transformation is important
is that it is the transformation used to convert begin
expressions into A-normal form.
> (As is the choice of
> A-normal form. Moreover, one could easily imagine a formulation of
> A-normal form that caters to whatever multiple-value convention is on
> the menu.)
That would be possible so long as begin continuations
are fundamentally similar to argument continuations.
If you think it is easy to imagine a formulation of
A-normal form that can deal with Kent's preferred
semantics, then you would do us all a favor by
> > our earlier decision implies that continuations created
> > for argument evaluation must also accept any number of
> > arguments.
I said that poorly, and you must have misunderstood it.
It is a fact that
1. If the traditional equivalence used to justify
translation of begin expressions into A-normal
form continues to hold, and
2. Continuations created by begin must accept any
number of values, then
3. Continuations created for argument evaluation
must accept any number of arguments.
More information about the R6RS