3 ms·
Old lisp makers rule was "macro is like lambda, but with one extra eval in the original environment". In other words: if your function is able to produce (+ 1
by timonoko 4y ago
Old lisp makers rule was "macro is like lambda, but with one extra eval in the original environment".
In other words: if your function is able to
produce (+ 1 2), same function produces 3, when used as macro.
- rurban 4y agomacro is not like lambda. macros are like special forms. a lambda evaluates all it's args, a macro not.
- lispm 4y agofexprs
- timonoko 4y agoMy Bad. I have special nlambda, which does not evaluate anything at any stage. It was originally for testing macros without macroexpand, which expanded too much.
- timonoko 4y agoI have also nslambda, which take only one argument. I think the macro in some ancient lisp was also like that. My macroes are called mlambda because of this confusion.