[R6RS] summary of decisions regarding multiple values

dyb at cs.indiana.edu dyb at cs.indiana.edu
Wed Jun 21 12:35:31 EDT 2006


>  *  Continuations created to evaluate an argument may
>     require exactly one value, but are also free to
>     accept more than one value, ignoring all but the
>     first [R5RS, minutes of 26 April].

By my interpretation of exceptions item #42, such continuations must
always require exactly one value, i.e., are not free to accept more than
one value.

>  *  Continuations created to evaluate an argument may
>     require exactly one value, or may require at least
>     one value, but are also free to accept zero values
>     by some ad hoc coercion, e.g. to the unspecified
>     value [R5RS, minutes of 26 April].

Again, my interpretation was that such continuations must always require
exactly one value.

For what it's worth, the second paragraph in the description of
call-with-current-continuation in Section 6.4 of R5RS says that all
continuations other than those created by call-with-values take
exactly one value:

  Except for continuations created by the {\cf call-with-values}
  procedure, all continuations take exactly one value.

We've also voted to require begin to accept an arbitrary number of values,
so this should now read something like this:

  Except for continuations created by {\cf begin} and the {\cf call-with-values}
  procedure, all continuations take exactly one value.
  Continuations created by {\cf begin} accept any number of values.

The sentence following the R5RS sentence above reads:

  The effect of passing no value or more than one value to continuations
  that were not created by {\tt call-with-values} is unspecified.

By my interpretation of exceptions item #42, we were effectively changing
this sentence to read something like this:

  If zero values or more than one value are passed to a continuation
  not created by {\cf begin} or {\cf call-with-values}, an exception
  must be raised with condition type &values.

In any case, we clearly weren't all voting on the same thing, so we should
revote.

Kent



More information about the R6RS mailing list