Menu

#219 (values) implementation violates r5rs

open
nobody
None
5
2007-02-25
2007-02-25
No

You can do

((lambda (x) x) (values 'foo 'bar))

in sisc (up until 1.16.5) which will take both values and bind x to a single value of type sisc.data.Values, in violation of

"Except for continuations created by the call-with-values
procedure, all continuations take exactly one value."

from r5rs.

Several other primitives take multiple values as a single value by default, with very few exceptions.

(I hope that was sufficiently precise and clear.)

Discussion


Log in to post a comment.

MongoDB Logo MongoDB