Andrei Zorine <zoav1@uic.nnov.ru> writes:
> The difference so far between maxima and lisp implementations is
> that maxima doesn't return infix form of the operator. This is
> exactly what happens:
> (C7) "aa"([x]):=(apply("aa",x));
>
> (D7) "AA"([x]) := APPLY("aa", x)
> (C8) a aa v;
>
> (D8) aa(a, v)
> (C9) :lisp $C8
>
> (($AA) $a $v)
> (C9) :lisp $D8
>
> ((&aa SIMP) $a $v)
As your transcript indicates, the two "aa" in (C7) are tokenized in a
different way. The first "aa" becomes the lisp symbol $AA while the
second "aa" is parsed as |&aa|. Now, $AA and &AA are related via
their property lists, but there is no connection to |&aa|. So MEVAL
has no chance. Compare this with
(C1) infix("aa");
(D1) "AA"
(C2) nary("aa");
(D2) "AA"
(C3) "aa"([x]):=apply(nounify("AA"),x);
(D3) "AA"([x]) := APPLY(NOUNIFY("AA"), x)
(C4) a aa v;
(D4) a AA v
Wolfgang