[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)
      (call-with-current-continuation
        (lambda (cont) (apply cont things))))

so according to R5RS your example is equivalent to

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

which must return OK.



_______________________________________________
Scheme-reports mailing list
Scheme-reports@x
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports