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

Reply via email to