On Sun, 13 Sep 2009, Brian Mastenbrook wrote: > I'm confused. This example: > > (let-syntax ((f (syntax-rules () ((_) 1)))) > (let () > (define (g) (f)) > (define (f) 2) > (g))) > > Does not error for me with Larceny 0.97b1.
This is because Larceny is 2-pass, as required by R6RS. This particular example works with 2-pass. But there are many examples that do not work even with 2-pass, some of which I listed in an earlier post. Note that in most non-Larceny R6RS implementations, many of the examples will not error, but instead give a wrong result, exactly like the above giving 1 instead of 2, /despite having a 2-pass expansion/. I would encourage you to check them out. In other words, even 2-pass is not enough to cover all possible cases. Andre _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
