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

Re: [Scheme-reports] Technical question

On Thu, 26 May 2011, Eli Barzilay wrote:

> This is a question for WG1 (collectively):
> According to R5RS, is this code:
>  (call-with-values
>    (lambda ()
>      (call-with-current-continuation (lambda (k) (k 1 2 3))))
>    (lambda (x y z) 'ok))
> allowed to throw an error, or to return anything other than 'ok ?

It is /not/ allowed to throw an error in R5RS.  According to R5RS:

    Values might be defined as follows:

    (define (values . things)
        (lambda (cont) (apply cont things))))

so according to R5RS your example is equivalent to

     (lambda ()
       (values 1 2 3))
     (lambda (x y z) 'ok))

which must return OK.

Scheme-reports mailing list