On Sep 11, 2009, at 7:59 PM, Andre van Tonder wrote:

> As far as macro expansion is concerned, I contend that the choice
> between one-pass or two-pass is really arbitrary.

Can we clarify the terminology here please:

* one-pass: each definition's right-hand-side expression is fully
   expanded (and macro definitions are expanded and evaluated) before
   the expander moves to the following definition/expression in body.
   [the repl /must/ use this because it does not have access to the
    whole program]

* two-pass: each variable definition's rhs expression is deferred
   until all definitions are accounted for; each syntax definition is
   expanded and evaluated; and each macro use is expanded and its
   result is used to replace the macro form; and once a nondefinition
   is encountered in body, all deferred expressions are expanded.
   [internal/library/program definitions /can/ use this because the
    whole body is known in advance]

Is this correct?

Aziz,,,

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

Reply via email to