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

Two small issues, and a test of whether the DCA has broken this mailing list

1. symbol-print-name should be called symbol-name.  This is more
consistent with everything else that has a name, and there is
nothing sacred about the term "print name".

2. Making READ-PRESERVING-WHITESPACE a function rather than a special
variable you bind around a call to READ is nice.  However, it brings
up the same problem with recursive calls to READ as #= does (my comment
about that, extracted from my general Laser-edition comments, is enclosed
for reference).  Suppose you do (READ-PRESERVING-WHITESPACE)'FOO<space>;
that should preserve the space just as if there were no quote.  But if
the quote macro character is defined the way it is in the example on
page 236, this won't happen; the inner call to READ will swallow the space.
If the quote macro character isn't really defined that way, and that is
just an oversimplified pedagogical example, then how are users supposed to
define their own macros?  I think the old Maclisp "TYIMAN" family of crocks
are still with us.

* 233: (#=) It says the scope is "the outermost call to READ".  Interaction
between recursive calls to READ is certainly mysterious.  Probably there is
a kludge in BREAK to prevent the next READ from thinking it is called recursively.
I'd rather see a different function for macro-character functions that want
to read sub-expressions to call.  This would unfortunately imply that
READ-DELIMITED-LIST is illegal for anything but a macro-character to call,
since it has to know which version of READ to use.  If we don't add a separate
function, this mysteriosity should be carefully documented. -- Moon