Cheers, glad I could help.
Many times it will be clearer when you know whether you're using a macro or a function (or a special form for that matter). Function calls all have standard evaluation rules, but macros can do what they want with evaluation (like not evaluate code in the case of mac
, or evaluate things lots of times like loop
). So when you know that macroexpand(-1) is a function, if you want to pass it code, you have to quote it.