Re: [Maxima] problem calling MAXIMA function at lisp level



go_furuya@infoseek.jp writes:

> "Wang Yin" writes:
> > (C1) FOO(X, Y) := X + Y + 3;
> > 
> >   then, I press Ctrl-C to enter lisp level, and :
> > 
> > MAXIMA>>(mfuncall '$foo 4 5)
> > 
> >   but I got the following answer:
> > 
> > (($FOO SIMP) 4 5)
> > 
> >   not 12 as the manual says.
> > 
> >   Is the manual too old? Where can I find a good book for MAXIMA?
> 
> This problem is caused by useing $foo not |$foo|.
> (C1) foo(x,y):=x+y+3$
> C2) :lisp(symbol-plist '|$foo|)
> (MPROPS (NIL MEXPR ((LAMBDA) ((MLIST) $x $y) ((MPLUS) $x $y 3))))
> 
> (C2) :lisp(MEVAL '(|$foo| 4 3))
> 10
> (C2) :lisp(mfuncall '|$foo| 4 3)
> 10
> 

Well, Wang Yin uses an uppercase FOO, which corresponds to the symbol
|$FOO| (and $foo is read like |$FOO|).  This means that everything
should work as the manual says, and, in fact, under Clisp and SBCL it
does so.

Wolfgang