On Jan 13, 2009, at 12:30, Mark P wrote:

>> Macros are handled at compile time, so they add no run-time overhead.
>
> But isn't "compile time" sometimes _at_ runtime?  Ie, if
> a macro is dependent on runtime information, then isn't
> it passed to "the compiler" which is included as part of
> the runtime executable, turned into bytecode, and then
> executed itself.  That's how I thought it worked anyway.

A macro cannot depend on runtime information. A macro is a function  
that is called at compile time, its argument is an expression (as  
written by the programmer, or as returned by another macro), and its  
result is a modified expression. There is no way a macro could access  
runtime information. It is a program that works on program code, not  
on runtime data.

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
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to