An assessment and feedback package for Maxima



On 11/15/10, Chris Sangwin <sangwinc at for.mat.bham.ac.uk> wrote:

> * establish two expressions are "equivalent" in various senses

It makes sense to me to include this in a share package.

>
> * provide feedback of the kind
>     "Your expression is not factored, you need to do more work on the term
> ...."

Not so sure about this -- seems like it depend strongly
on the particular application.

> * establish mathematical properties of simple expressions, e.g. this is
> continuous at $x=a$.

This also could go in a share package, or even in core.

> (1) How is multi-language support implemented in Maxima?

Internally Maxima employs an implementation of gettext,
which is a widely-used system for automatically translating strings in programs.
In Lisp code one writes (intl:gettext "foo: my message goes here")
whereever one needs the string translated.
gettext uses the string as a key in a look-up table (one per language)
to see if there is a translation. There are tools to extract gettext
strings from programs, to make it easier to build the translation table.

I suppose it should be pretty easy to call gettext from Maxima too.
Maybe an existing gettext extract tool can be adapted to Maxima code.

> (2) Unit testing

More test cases are welcome. A Maxima test script comprises
a list of expressions written two by two; first one in each pair is
an input and the second is the expected output.
batch("mytestscript.mac", test) evaluates the first and compares
it to the second (which is neither evaluated nor simplified).
It's also possible to put the test script on a list of files processed
by run_testsuite; see e.g. share/share_testsuite.mac.

Hope this helps,

Robert Dodier