Maxima's REPL



That's the easy part of a Webified REPL.

The harder parts are what to do when Maxima asks questions before returning
an answer, e.g.

(%i2) integrate(x^a,x);
Is  a+1  zero or nonzero?
n;

(%o2) x^(a+1)/(a+1)

or gives an error rather than returning an answer:


(%i3) 1/0;
Division by 0
 -- an error. To debug this try: debugmode(true);


a bunch of people have banged their heads against these (seemingly trivial)
issues.

            -s

On Fri, Apr 8, 2011 at 12:02, Leo Butler <l.butler at ed.ac.uk> wrote:

> I've been hacking at combining Maxima with AllegroServe.
> I have a working version, but I am running into a bit
> of a knowledge shortfall:
>
> Could someone describe to me roughly how the Maxima top-level
> works? I believe that mread -> meval -> displa implements
> the REPL but there seem to be some flags set that I am  missing
> because that trio produces output with a superfluous 'displayinput'
> flag.
>
> If it helps, I am running Maxima and AllegroServe in the same lisp
> image, and I am capturing Maxima's input from a get request entity,
> implementing the REPL and firing back the output string. It's
> quite naive, but I can see that we can replace displa with
> a more suitable output parser -- and since meval is spitting out structured
> Maxima forms, turning that into html or whatever
> should be quite feasible.
>
> With a little JavaScript, we could make pretty near any browser
> an interactive front-end to Maxima.
>
>
> Leo
>
> --
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>