Re: Macro and metadata

2014-05-25 Thread James Reeves
A macro is a function that's evaluated at compile time rather than at runtime. Clearly the compiler needs some mechanism to distinguish between the two, correct? Clojure already has metadata and functions, so using a metadata flag on the var introduces no new types. It also has the advantage of be

Macro and metadata

2014-05-25 Thread Angel Java Lopez
I see that macro are defined with associated metadata :macro true in its associated var. Evaluate: (meta (var defn)) and you see the :macro true in metadata Why? In other lisp, macro are the result of evaluate (mlambda ... ) or something alike, that is, macro are values that are evaluated in an