On 5/8/05, Alejandro Forero Cuervo <[EMAIL PROTECTED]> wrote:
> 
> In Common Lisp, it is valid for an expression to return multiple
> values when the continuation only accepts one.  This is used by many
> functions to return the usual value as their first value and some
> other less-often-used results as the other values.  This does not work
> in Chicken (nor in other Scheme implementations I tried), though.
> 

In fact, some Schemes relax this somewhat (Chez Scheme, for example
basically has Common-Lisp semantics, IIRC).
Since this can get somewhat inconvenient, I will relax the rules as well:
*implicit* non-multival continuations discard all but the first result value
(so `(let ((foo (values 1 2 3))) ...)' will bind foo to 1..

(available in the current darcs repo).


cheers,
felix


_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to