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