Subject: macro returning a nounform = infinite loop?
From: Barton Willis
Date: Wed, 25 Apr 2012 08:29:58 +0000
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