On Wed, 16 Sep 2009, [email protected] wrote: > "One-pass", "two-pass", and "recursive one-pass", > (whatever the Sam Hill that means), are implementation > techniques. Talk of "one-pass semantics" is confusing, > or confused. The issue, if there is one, is the region > of visibility [r6rs,5.2] of each binding occurrence of > an identifier.
No, we are not disagreeing on the region of visibility. We are disagreeing on the order of evaluation of macros during expansion. To explain simply, for ordinary definitions, in the following (display x) (define x 1) everybody agrees that x is lexically /visible/ in the first line, yet they also agree that this should raise an error, because nobody expects the definition to be executed before the display because it is needed earlier. Evaluation is left to right. But for macros. Again, in the following (display (m)) (define-syntax m (syntax-rules ((_) ......)) again, everybody agrees that m is lexically /visible/ in the first line, but we disagree on when the macro is evaluated during expansion. Some, like me, think that expansion should be left to right - therefore /just like the first example/, this should raise an error. Others, not me, however, expect the syntax definition to be evaluated first, so it can be used in the first line. So no, it is not a question of visibility. It is a question of order of evaluation. Andre _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
