Symbols, strings and case-sensitive Maxima



>>>>> "James" == James Amundson <amundson@users.sourceforge.net> writes:

    James> Now that the new case sensitivity scheme has been implemented, I see a
    James> problem that I did not anticipate. In the new scheme, symbols are stored
    James> in inverted case. Fine. Some care needs to be taken when printing
    James> symbols, but that's it. Manipulations from Lisp are generally pretty
    James> transparent -- after all, most people enter lower-case lisp code, only
    James> to have it stored in upper case. The problem is in the way Maxima treats
    James> strings: Maxima strings are really symbols. That means that strings are
    James> also stored in inverted case. I think most people will find that pretty
    James> counter-intuitive. It is also not the way Lisp operates in general.

I think it's counter-intuitive, since I ran into some of these
issues.  But isn't this only an issue for strings in Lisp code that
get processed by maxima?  Strings created by the user in maxima get
converted to the right case.  Strings with all lower-case characters
become upper-case symbols which are printed all lower-case.
Mixed-case is preserved.

This problem shows up most often in error messages.

    James> Do we need to start treating strings as strings? I wasn't planning to do
    James> that at this point. I am just starting to think about the problem, so I
    James> don't have an answer. It would be helpful if others started thinking
    James> about this problem, too.

I think it would be nice if strings were really strings.  I also wish
maxima didn't use symbols as strings so much, like using symbols as
error messages.

I suspect this will be hard to do, but perhaps now is the right time.
Case sensitivity will break lots of code out there, so we might as
well break everything all at once. :-)

Ray