Case-sensitivity goals, policy and implementation



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?

Hey! I think you have the right answer. I am glad you are thinking about
this more clearly than I was. The point I missed is that we want maxima
functions to *print* in lowercase, but we really don't care if the
corresponding lisp symbol is uppercase.

> Also, I think it would be a mistake to add any sort of complicated
> rule on uppercase/lowercase. 

Yes, yes, yes. I believe your observation about setting the readtable
case to :invert renders my previous proposal obsolete.

Many thanks,
Jim