On Sep 13, 2009, at 3:58 PM, Andre van Tonder wrote:

> On Sun, 13 Sep 2009, Brian Mastenbrook wrote:
>
>> On Sep 13, 2009, at 3:47 PM, Andre van Tonder wrote:
>>
>>> By following the example of R6RS and declaring it to be an error.
>>
>> Did you try that code in any implementation of the R6RS?
>
> Yes, I wrote the implementation of macros and modules
> for R6RS Larceny.  The examples are from the tests for
> R6RS compliance that come with the implementation,
> and describes the behavior of Larceny.
>
> R6RS declares them to be errors but for technical reasons
> does not require implementations to raise these errors,
> it only encourages them to do so.  To my knowledde,
> Larceny is the only implementation complying with
> the R6RS recommendation.

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. Was this checking added  
more recently? And why would such a gratuitous incompatibility with  
the R5RS be added? (I once again assert that the R5RS requires that  
this returns 2, as the inner `define's are converted to a `letrec'.)

--
Brian Mastenbrook
[email protected]
http://brian.mastenbrook.net/

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to