Case-sensitivity goals, policy and implementation



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

    James> On Tue, 2004-10-12 at 09:25, Raymond Toy wrote:
    >> I think *print-case* should be left as :upcase
    >> (the default), but the reader (for maxima code) should have a
    >> readtable-case of :invert.  Section 22.1.3.3.2.1 of the CLHS has a
    >> table showing the effect:
    >> 
    >> READTABLE-CASE *PRINT-CASE*  Symbol-name  Output
    >> --------------------------------------------------
    >> :INVERT        :UPCASE       ZEBRA        zebra
    >> :INVERT        :UPCASE       Zebra        Zebra
    >> :INVERT        :UPCASE       zebra        ZEBRA
    >> 
    >> Is this not what we want?  We read "zebra" to become the lisp symbol
    >> 'ZEBRA, which, when printed out is "zebra".
    >> 
    >> Wouldn't this make "m" and "M" distinct?

    James> Hey! I think you have the right answer. I am glad you are thinking about
    James> this more clearly than I was. The point I missed is that we want maxima

I wish I could claim I were a genious, but that would be false.  The
nice people on #lisp on irc pointed me to this table.  I thought Lisp
could do this, but didn't know how to make it happen.

    James> functions to *print* in lowercase, but we really don't care if the
    James> corresponding lisp symbol is uppercase.

Actually I do care.  Then I don't have to quote stuff in Lisp for the
most common usages.  No more |$%o42| to see what the output form
is.  Hurray!

Ray