Here's a suggestion to make Mockmma and Maxima inter-operate.
1. have a program to_mockmma(); in Maxima, that starts up a Mockmma
top level, just like to_lisp();
there should be a program (in Mockmma) called to_Maxima[] to return.
2. have a program cv2max[] which takes an algebraic expression like
a*b+c in Mockmma internal form and converts to Maxima internal form,
basically the same as
Mathematica's FullForm .... just replacing f[] with f().
and also cv2mock[] which takes a Maxima form and converts to MockMMa.
Also a program FuncallMax...
This would allow the following:
/* Use Maxima's integration program for the Mockmma command "Integrate" */
Integrate[f_,x_]:= cv2mock[ FuncallMax[integrate, cv2max[f],
cv2max[x]]]
If for some reason (perhaps to use the pattern matcher in mockmma?) one
wanted to use mockmma from maxima, there could be
IN Maxima, different programs
cv2mock() cv2max() funcallmock() also mockmmaparse() so one could do in
maxima
mockmatch(expression, pattern):= cv2max(funcallmock("MatchQ",
cv2mock(expression), cv2mock(pattern)).
The syntax for Patterns might be like mathematica FullForm, but in
Maxima style, e.g. a+x__ is Plus(a,Pattern(x,BlankSequence()))
or perhaps cvt2max(mockmmaparse("a+x__"))
None of this would be very hard to do, I think.
RJF