Allegro Petrofsky <Allegro@Petrofsky.Berkeley.CA.US> wrote:
+---------------
| (let ((f -)) (let f ((n (f 1))) n)) => -1
| However, in scm and guile this evaluates to 1. Kawa gets it right.
| I didn't try any other implementations.
+---------------
MzScheme, Elk, & Scsh (Scheme48) get it wrong, too, but Gambit and RScheme
get it right.
Note that even the ones that get it wrong when written as a named-let
work correctly if you write out the R[45]RS expansion manually:
(let ((f -))
((letrec ((f (lambda (n) n)))
f)
(f 1))) ==> -1
-Rob
-----
Rob Warnock, 8L-855 rpw3@sgi.com
Applied Networking http://reality.sgi.com/rpw3/
Silicon Graphics, Inc. Phone: 650-933-1673
1600 Amphitheatre Pkwy. FAX: 650-933-0511
Mountain View, CA 94043 PP-ASEL-IA