On Tue, May 24, 2011 at 6:02 PM, John Cowan <[email protected]> wrote:
> Emmanuel Medernach scripsit: > > > Except for continuations created by the call-with-values procedure, > > all continuations take exactly one value. The effect of passing no > > value or more than one value to continuations that were not created > > by call-with-values is unspecified. > > > > Therefore code relying on this cannot be portable, isn't it ? > > No, it's not portable. > > Indeed, but in (foo X Y) I would not allow the evaluation of expression X to interfere with Y : if X is (values X1 X2) and Y is (values), foo could mislead X1 with X and X2 with Y as in some implementation. I mean doesn't the report has to specify that evaluation of X has to be bound to X only ? > As you say, some implementation reifies 'values'. However the > > R[567]RS definition of values currently forbids to reify it as I > > understand it : > > > > (values obj ...) procedure Delivers all of its arguments to its > > continuation. > > It doesn't say *how* they are delivered. Reification is a perfectly > legitimate strategy. Thanks. Historically, multiple values were intended to be > a more lightweight alternative to constructing an object: > > Yes, like "letting values on the stack" implementations. There is a last colon in your mail, is it truncated ? Best regards, -- Emmanuel Medernach
_______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
