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

#+ and *read-supress*



 The Soar project is considering adopting "," as part of our
language's syntax. This is a dangerous move at best in a Common Lisp
implementation, but it would be quite nice for our purposes.

 While the new version of Soar is under development, this read table
modification to comma is on a *feature*, :DSM.  When I try and run my
test code over the old style code (i.e. #-:DSM),"#+:DSM form",
where form contains a comma, form will not read.

Page 359 says that *read-supress* is lambda bound non-nil during my
#+:DSM read of form when :DSM is not a member of *features*. Pages
345 and 346 of Steele's CLtL document *read-supress* and page 346
says,

"Note that, no matter what the value of *read-supress*, parentheses
still continue to delimit (and construct) lists; the #( construction
continues to delimit vectors; and comments, strings and the quote and 
backquote constructions continue to be interpreted properly.
Furthermore, such situations as '), #<, #) and
#<space> continue to signal errors."

 It is clear to me that we need parentheses, #(, comments and strings
to read correctly so that #+/- can delimit form. It also seems nice
to me that the usual reader errors will occur, such as '), #< and #).

 What I'm missing is the rationale for having quote and backquote (and
its "," macro) still in operation. It would be nicer in this case if
commas were read over. Perhaps a rationale note should be added by the
clean up committee, or the quote and/or backquote should be removed from
*read-supress*.

 Thanks, Brian Milnes (Milnes@centro.soar.cs.cmu.edu)