User-level namespace system for Maxima



> If I had my wish, I'd make the maxima language lexical, and fix (or
> replace) the translator so that it actually works for anything the
> user might do, so that maxima can be compiled to Lisp and ultimately
> to machine code if your Lisp can do that.

All this sounds good to me in principle.  We've discussed before some
of the issues with lexical scoping.  For example, if we really believe
in lexical scoping, what is the meaning of a *symbolic* bound
variable, e.g. lambda([x],x)?  Of course, Maxima doesn't really
understand much about bound variables in general, for example that
sum(f(i),i,0,inf) == sum(f(j),j,0,inf).

> Then ditch as much of the internal Lisp stuff as possible and
> implement everything in maxima.  Right now, I tend to write stuff in
> Lisp because it's easier for me to understand, and I already know
> Lisp, but don't really know maxima.

I would agree with this if the Maxima language were well-designed and
modern.  But it is not.  I'm not very happy with its syntax or its
semantics.  No surprise -- it was designed a long time ago and
basically calqued on the underlying Lisp.

        -s