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

Reply via email to