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

misc. stuff

Here are some of my random and more-or-less nit-picking remarks about
the Laser Edition.

[1] Will there be a unified index in the next edition of the manual?  I
have the impression that Symbolics has decided that it is best to have
one index instead of four or five.  I certainly agree.

[2] Is LAMBDA not defined as a special form?  If not, then sections 5.2.2
(LAMBDA-expressions) and 7.1.1 (description of FUNCTION) should
make this clear.  LAMBDA should be indexed somewhere.

[3] Page 38, section 4.8, description of TYPE-OF: "TYPE-OF of one
argument" should be just "TYPE-OF" (fifth and sixth lines of that

[4] Pages 76 and 99: what is the lexical scope of the body of a macro
definition?  I.e., where do free variables (and functions) get their
values?  This needs clarification.  E.g., what does the following mean?

	(setq x 8)
	(eval-when (compile) (setq x 2))
	(let ((x 5))
	  (macrolet ((foo (z) `(+ ,z ,x)))
		    (foo 7)))

Does this evaluate to 9, 12, or 15?  Does it matter whether the code is being
"interpreted" or "compiled"?  Can the manual be written in such a way as to
let this be explicitly undefined?

[5] Page 196, third example in description of STRING-UPCASE et al.:
  (string-upcase "Dr. Livingston, I presume?" 6 10)
should read
  (string-upcase "Dr. Livingston, I presume?" :start 6 :end 10)

[6] Page 229.  Section name "Shape-Sign Abbreviations" is misleading -
the wo1d "abbreviation" seems pretty random here.  Not all syntaxes
introduced by # are abbreviations for anything - that is, there aren't
other equivalent ways to write most of them.

[7] Page 244.  Is READ-DELIMITED-LIST defined to side-affect the syntax
of its "char" argument in *READTABLE*, even if only temporarily?
Presumably it would be implemented by temporarily defining a
right-parenthesis-like readmacro character for "char", using
UNWIND-PROTECT or something of the sort.  If such an implementation is
permitted, perhaps this should be mentioned.