[R6RS] summary of decisions regarding multiple values

William D Clinger will at ccs.neu.edu
Sat Jun 24 06:52:51 EDT 2006


Mike wrote:
> >     (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
describing it.

> > our earlier decision implies that continuations created
> > for argument evaluation must also accept any number of
> > arguments.
>
> No.

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.

Will



More information about the R6RS mailing list