Subject: problem calling MAXIMA function at lisp level
From: Wolfgang Jenkner
Date: 14 Jan 2003 06:17:41 +0100
Ole Rohne <ole.rohne@cern.ch> writes:
> MAXIMA symbol case apparently works differently on different
> platforms.
But it's supposed to work in the same way on all supported platforms.
We have here two largely independent case-sensitivity issues.
1) The Lisp top-level.
The ANSI CL reader does case conversion in accordance with the
readtable case of the current readtable. Maxima doesn't change the
readtable case of the readtable which was current at load-time.
Since this was presumably the standard readtable $FooBar is read as
|$FOOBAR|.
2) The Maxima top-level.
Maxima converts FooBar to upper-case if and only if |$FOOBAR| is
already accessible in the MAXIMA package and |$FooBar| is not.
(C1) ?eq(FOO,foo);
(D1) TRUE
(C2) ?eq(bar,BAR);
(D2) FALSE
(C3) ?eq(BaR,BAR);
(D3) TRUE
(C4) ?eq(bar,BAR);
(D4) FALSE
(As an exception, single letter symbols are never converted, but this
is by accident.)
Currently there is a certain discrepancy between this behaviour and
what is documented in the manual. See
http://www.math.utexas.edu/pipermail/maxima/2002/002537.html
(Contrary to what I suggested there I am not so sure anymore whether
the source should be fixed to match the documentation or the other way
around or...)
Wolfgang