On Wed, Sep 4, 2013, at 09:25 AM, Zach Tellman wrote:


    I'm not sure what you mean by "complete recursive expansion".
Could you expand

    on that?



Completely ;-)


By complete recursive expansion I mean that you get a form that is
fully reduced to

the core language, i.e. it contains no more macro applications at any
level.


If you leave macro expansion to the compiler, it does it when it
arrives at the

macro during evaluation. Then it does a plain non-recursive macroexpand
and goes on

evaluating. Any macro thus has access to the unexpanded contents of its
form, but

not to what it eventually expands to. For many applications that's just
fine, which

is why this approach has been the default in the Lisp world for a long
time.



    As for replicating the behavior of the compiler, I'd assert that
unless &env is

    precisely what it would be without ahead of time macroexpansion,
the compiler's

    behavior isn't being replicated.



I agree. tools.macro predates &env, which is why it is not supported.
Since I have

never need &env support and nobody ever asked for it (before now), it's
not there.

I don't see any reason why it couldn't be supported.


Konrad.

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to