On Wed, Mar 11, 2015 at 8:37 AM, Kaj Wiik <[email protected]> wrote:

> Is this the correct place to use eval() in macros


There is no correct place to use eval in macros. Macros transform one
symbolic expression into another and should generally be pure functions
with no side effects. You don't get access to the values of the arguments
to a macro, but rather the AST for the expressions. The fundamental mistake
here is that your macro doesn't return anything and runs code instead;
running code is what normal functions do; a macro should return the quoted
code that replaces the macro instance when the expanded macro.

Reply via email to