Macro Expansion for NULLIFY
By defining the macro NULLIFY, we have actually defined a procedure, but it’s not named NULLIFY. It’s called the macro expansion function or transformer for NULLIFY.
When the macro NULLIFY is called, its transformer is applied to the macro argument. And then that result is evaluated.
We can see a representation of the intermediate result if we use the procedure MACROEXPAND (to be defined shortly).
> (macroexpand '(nullify total))