Chris Marusich <cmmarus...@gmail.com> writes:

> I've noticed that when one passes multiple values as a single argument
> to a procedure, only the first value gets used.  Is this expected?

Yes.

> However, I did find the following information in R6RS (Section 5.8:
> "Multiple return values"), which seems possibly relevant:
>
> "Not all continuations accept any number of values. For example, a
> continuation that accepts the argument to a procedure call is guaranteed
> to accept exactly one value.  The effect of passing some other number of
> values to such a continuation is unspecified."

Guile resolves this unspecification by passing the first value.  Here is
a proposal that tries normalizing the special case of passing zero
values as well:

<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=17474>

This "use only the first value in non-multiple-value accepting contexts"
is similar to what Lua uses in the context of "..." argument lists.

-- 
David Kastrup


Reply via email to