[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Readtables and prin1
- To: Scott E. Fahlman <Fahlman@C.CS.CMU.EDU>
- Subject: Readtables and prin1
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Wed, 17 Sep 86 23:00 EDT
- Cc: Timothy.Freeman@THEORY.CS.CMU.EDU, common-lisp@SU-AI.ARPA
- In-reply-to: <FAHLMAN.12239777784.BABYL@C.CS.CMU.EDU>
Date: Wed, 17 Sep 1986 21:07 EDT
From: "Scott E. Fahlman" <Fahlman@C.CS.CMU.EDU>
I think that the usual practice is to print things out so that they can
be read in using the standard readtable. It would be VERY difficult to
write code that can print out text for any user-modified readtable,
especially if the read-table contains macros.
Many systems attempt to print things out so that they can be read in using
the current readtable. For example, the Symbolics system uses the current
readtable to determine where escape characters are required (feed the
symbol's name back through the readtable and see if you get the same thing).
I agree that it is very difficult to cope with arbitrary user modifications
to the readtable, especially with the readtable-modifying primitives provided
by Common Lisp, but on the other hand it's easy to cope with some common,
simple modifications such as changing exclamation point from a constituent
to a macro. Basing this on the current readtable rather than the standard
readtable gives the user more flexibility, but as Common Lisp is currently
defined it is up to each implementation to decide whether it wants to go
to this much care.
I think if we're going to be more specific than "an attempt is made to
print an expression in such a way that it can be read again", then it
is incumbent on us to define more specifically how to customize the
printer in the same way that the reader can be customized, e.g. changing
the parenthesis characters.