macro returning a nounform = infinite loop?



A workaround is

 (%i47) h(x) ::= buildq([h,x], funmake(h,[x]))$

 (%i48) h(1);
 (%o48) h(1)

But I don't understand why there is an infinite loop or why the workaround cures the infinite loop.

--bw

________________________________________

Ordinary function that returns a nounform--OK:

(%i13) f(x) := funmake('f,[x])$

(%i14) f(1);
(%o14) f(1)

Macro that returns a nounform---infinite loop:

(%i15) g(x) ::= funmake('g,[x])$

(%i16) g(1);
Maxima encountered a Lisp error:
 Error in PROGN [or a callee]: Bind stack overflow.

What's the story?

--bw