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

Re: More case

There are a few systems that ignore case when comparing your
input against existing symbols, but remember whatever case
you use when you first define the symbol.

EMACS is an example.  It remembers function and variable
names using both cases, but it ignores the case you use to
refer to them.

This way, you can make the output look the way you like
without ever being screwed.

Even in a more conventional system such as Maclisp which
converts to upper case in the symbol names as remembered,
the question of how to do OUTPUT is a separate one.
Because either case means the same thing, you are free to
output whichever one you like.  There would be no reason
why you couldn't use a printer which printed everything in
lower case by default.  Or one which used a property of the
symbol to decide how to casify it on output.  The property
would be missing for a symbol to print with only its first
letter in upper case.  Other values of the property could
be used to select different ways.

We would probably mind if the grinder clobbered the case of
our programs as we wrote them.  We also minded that it clobbered
the line-breaking and spacing in our programs, even though those
are certainly not important to the machine.  So we don't grind
files any more.  We just do the formatting with EMACS.

Notice how I emphasized the word "output" by putting it in upper
case.  I was able to do this because the definition of "OUTPUT"
is the same as that of "output".  If they were two different words
then such emphasis would be impossible.