[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] multiple values module

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.

> 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.  Historically, multiple values were intended to be
a more lightweight alternative to constructing an object:

Where the wombat has walked,            John Cowan <cowan@x>
it will inevitably walk again.          http://www.ccil.org/~cowan

Scheme-reports mailing list