Partially expands a form.
Non-recursively invokes the expansion algorithm for a form, returning after having invoked no more than one macro-expander.
The result is a two-element array which starts with a symbol, one of:
(not-a-macro arg)
if no expander was invoked.(expanded-to result)
if an expander was invoked.(macro-no-op arg)
if that expander calledmacro-no-op
.
The function will normally attempt to look up the current global or
local macro binding for an array's first element. This can be overridden by
passing a fn
or rfn
as the expander
argument, which forces that particular expander
to be invoked.
For the meaning of the env-mode
parameter, see eval
.