--- Begin Message ---
Subject: |
Widespread bug in handling (call/cc (lambda (c) (0 (c 1)))) => 1 |
Date: |
11 May 2002 14:38:42 -0700 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
The expression (call/cc (lambda (c) (0 (c 1)))) is a legal expression
according to r5rs, whose semantics are that 1 gets returned when it is
passed to the escape procedure c during the evaluation of the
positions of the combination (0 (c 1)).
A quick survey of the scheme implementations I have handy indicates
that this is a commonly missed compliance issue:
Petite Chez 6.0a Error: attempt to apply non-procedure
SCM 5d6 ERROR: Wrong type to apply
Bigloo 2.4b *** ERROR:bigloo:eval: Not a procedure
scsh 0.6.0 okay (gives a warning)
MzScheme 200alpha12 okay
Implementors, please place this on your list of earth-shatteringly
important issues, just after getting (let - ((n (- 1))) n) => -1
right.
-al
--- End Message ---