[Top][All Lists]

[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.


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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]