[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DEFAULT-CASE



>   Proposal (DEFAULT-CASE:LOWER)
> 
>     The case of all characters in the names of standard
>     functions, symbols, and packages is lower.
> 
> You're proposing a huge incompatible change that is bound to
> get you into a religious war that can't do anyone any good.
> I claim that this proposal addresses the internal representation
> of programs but all you care about is the external representation.
> I also claim that the choice of case in internal representation
> is arbitrary and need not prejudice the external representation
> at all.

That is almost true, but not compeletly.  What about FIND-SYMBOL and
the like?  So the programmer sometimes still has to know that, internally,
the default is upper case.  And if the internal case has so little
significance, why should there be a religious war about it?

> If you believe what I just said, you would propose that the reader get
> an option to flip case instead of up-casing when converting from
> external representation to internal representation, and would propose
> another value for *print-case* that does the inverse transformation.

Something like this was suggested in the "discussion" section of
READ-CASE-SENSITIVITY (Version 1).  But maybe it shouldn't just
flip everything:

  An interesting possibility would be to disguise the preferred
  internal case by defining a value for *READ-CASE* called :INVERT.
  If the value were :INVERT, mixed-case symbols would remain the same
  (or perhaps they would be inverted too) but all-upper-case input
  would specify a lower-case name internally, and vice versa.

One problem with such proposals is that (I suspect) most people
most of the time will write code in lower case.  Having the reader
always invert what they type seems a bit perverse.  I'd be surprised
if this convinced anyone to change their mind, though.

> This would be compatible with everybody, would make everybody happy
> except for those who might insist that one internal representation
> is better than the other, and hopefully would avoid spending a lot
> of time on discussion.  What do you think?

I'd prefer to change the internal case, but this is a reasonable
alternative if a change can't happen or would cause hard feelings
or extensive difficulty if it did.