R5RS didn't specify this, which was always a very annoying obstacle to 
portability.  E.g.,

    (define x 1)
    (let-syntax ((foo (lambda (e)
                        (syntax (begin
                                  (define x 2)
                                  x)))))
      (foo))  ;==> 2
    x         ;==> NOT SPECIFIED IF IT SHOULD BE 1 or 2

It seems from my reading on p. 15 that R7RS doesn't specify it either.

In otehr words, definitions introduced in macros can possibly shadow toplevel 
bindings, which is a major obstacle to safe hygienic macro programming.

_______________________________________________
Scheme-reports mailing list
[email protected]
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports

Reply via email to