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

Re: Casifying at output time wins for what I want it to do.



   Date: 1 February 1981 22:28-EST
   From: Kent M. Pitman <KMP at MIT-MC>
   Subject:  Casifying at output time doesn't win...
   To: RMS at MIT-MC
   cc: EAK at MIT-MC, LISP-FORUM at MIT-MC

   The following case comes up every time we have had to discuss this
   in GRINDEF bug mail. I don't think the I/O scenario you described
   will handle it...
   Consider:

     (PRINT (READ))(X x |X| |x|)

   then,

     X must be EQ to |X|
     x must be EQ to |x|

At this point my actual idea and your idea of my idea part company.
You seem to think I am trying to arrange for each use of the symbol X
to print out the way it was typed in.  I'm not.  I certainly want both
x and X to turn into |X|, always, and both of them would print out the
same.  The question is, do they both print out as X or both print out
as x?  This is what I would like the user to be able to specify.

The intended feature is: if a user uses the symbol Together and always
casifies it that way, then it will print back out as Together.  (And
if once in a while he types in just together, it will still print as
Together).  If another user always writes ToGetHer, then for HIM, it
will always print as ToGetHer.  (And if once in a while he types just
together, it will still print as ToGetHer).  For both of these users,
the symbol actually appearing in memory is |TOGETHER|.

If I write a program to call the second user's ToGetHer function, I
can write it any way I like.  It will still print out ToGetHer.  This
is because his program will contain something to specify how to print
that symbol, and my program will (most likely) not contain anything to
say how to print it out.

Anyway, I'm really quite satisfied with the way Maclisp works now.