Brian Mastenbrook scripsit:

> However, in:
> 
> (define a (m))
> (define-syntax m ...)
> 
> The binding of `m' may be used on the right-hand side of `define',  
> because `define' operates as a syntactic delay, just as with ordinary  
> variables you can write:
> 
> (define a (lambda () b))
> (define b 2)

Say what??!

Define does not cause any sort of delay.  What delays things in the
second example is lambda, not define.  (Of course, it's easy to slip
here because of the second form of define, (define (foo ...) ...),
which has a hidden lambda in it.

(I suspect that that format was added to Scheme because even people who
preferred Scheme still loved their defuns and wanted something equally
terse.)

-- 
John Cowan   [email protected]
    "Mr. Lane, if you ever wish anything that I can do, all you will have
        to do will be to send me a telegram asking and it will be done."
    "Mr. Hearst, if you ever get a telegram from me asking you to do
        anything, you can put the telegram down as a forgery."

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

Reply via email to