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

Multiple values not for R4RS



Well I guess now the focus is to generate a proposal in preparation
for the next Scheme meeting.  Hopefully, the proposal presented at the
meeting will have been agreed to by those reachable by E-mail.  It
sounds like those interested in records are following the same plan.
R4RS just is not going to have multiple values.  Let's make sure R5RS
does.

>> From: Morris J. Katz <katz@Polya.Stanford.EDU>
...
>> The escape procedure is a Scheme procedure which when applied to a
>> value(s) will ignore whatever continuation is in effect at the time of
>> application and will instead give its argument(s) to the continuation
>> that was in effect when the escape procedure was created.  The arity
>> of an escape procedure created in the 'generator' position of a
>> 'with-values' form must match that of the 'receiver'.  All other
>> escape procedures must accept at least one argument.  Some
>> implementions may choose to ignore extra arguments, others may signal
>> an error when more then one argument is given.
...
Morry, I think your wording is better than my attempt, but how about
this small modification?

The escape procedure is a Scheme procedure which when applied to some
values will ignore whatever continuation is in effect at the time of
application and will instead give its arguments to the continuation
that was in effect when the escape procedure was created.  The arity
of an escape procedure created in the 'generator' position of a
'with-values' form must match that of the 'receiver'.  All other
escape procedures must accept at least one argument.  Some
implementions may choose to ignore extra arguments, others may signal
an error when more then one argument is given.

I am not happy with Morry's rewording of the description of
with-values.  Any more suggestions?

John

PS. The intended formal description of with-values is:

%%% Raw TeX.
$$\hbox{\it with-values} = \hbox{\it twoarg }(\lambda \epsilon_1
\epsilon_2\kappa . \hbox{ \it applicate } \epsilon_1 \langle \rangle
\lambda \epsilon^\star . \hbox{ \it applicate } \epsilon_2
\epsilon^\star \kappa)$$
\end