[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#17474: Making *unspecified* equivalent to (values) would seem conven
From: |
Ludovic Courtès |
Subject: |
bug#17474: Making *unspecified* equivalent to (values) would seem convenient |
Date: |
Mon, 12 May 2014 21:21:25 +0200 |
User-agent: |
Gnus/5.130009 (Ma Gnus v0.9) Emacs/24.3 (gnu/linux) |
David Kastrup <address@hidden> skribis:
> address@hidden (Ludovic Courtès) writes:
>
>> R5RS defines ‘values’ as:
>>
>> (define (values . things)
>> (call-with-current-continuation
>> (lambda (cont) (apply cont things))))
>>
>> Thus, a conforming implementation must raise a run-time error when the
>> continuation of a (values) form expects one or more values.
>
> No. From R5RS:
>
> -- procedure: call-with-current-continuation proc
>
> [...]
>
> The escape procedure accepts the same number of arguments as the
> continuation to the original call to
> call-with-current-continuation. 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.
Oh indeed, I stand corrected.
> So this behavior is neither out of line, nor against the standard. It
> is merely a more convenient behavior for a situation that the standard
> left unspecified.
Right.
I’m not completely convinced it makes sense to “specify” the zero values
case in this way, but I’d like to hear what others think.
Thanks,
Ludo’.