Maxima Function
macroexpand (expr)
Returns the macro expansion of expr without evaluating it,
when expr
is a macro function call.
Otherwise, macroexpand
returns expr.
If the expansion of expr yields another macro function call, that macro function call is also expanded.
macroexpand
quotes its argument.
However, if the expansion of a macro function call has side effects,
those side effects are executed.
Examples
(%i1) g (x) ::= x / 99; x (%o1) g(x) ::= -- 99 (%i2) h (x) ::= buildq ([x], g (x - a)); (%o2) h(x) ::= buildq([x], g(x - a)) (%i3) a: 1234; (%o3) 1234 (%i4) macroexpand (h (y)); y - a (%o4) ----- 99 (%i5) h (y); y - 1234 (%o5) -------- 99