I use a modified version of the newdiff function found in the Maxima
book section 7.11.
This function output some noun form and after that I have problems to
evaluate expresions.
My problem can be described with the following function:
F(x):=block([inflag:true],
if atom(x)=true then 'F(x)
else
if inpart(x,0)="+" then map(F,x)
else 'F(x));
Hence
(%i2) F(a+b);
(%o2) F(b) + F(a)
Assume that I have constructed some expresion like
(%i3) expr:subst(x=a+b,F(x));
(%o3) F(b + a)
Now I dont know how to evaluate expr in order to obtain F(b)+F(a) :
(%i4) ev(expr,eval);
(%o4) F(b + a)
(%i5) ev(expr,nouns);
*** - Program stack overflow. RESET
and also ev(expr,F) enter in an endless loop.
Some help ?
jose cano