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

Which constants must be quoted?



I (Will Clinger) received the following from Ken Dickey of Tektronix:

----------------------------------------------------------------
Will,

The Revised Revised Report is somewhat ambiguous on what
computational objects are self evaluating.  For example the grammar
on page 7 does not list <char> as a constant, but there is a
statement in section II.7 that with the "#\" notation characters are
self evaluating.  Likewise both character and vector constants are
mentioned as self evaluating on page 12 (under quote), but section
II.9, on vectors, does not state whether vectors (which use the "#("
notation) are self evaluating.  [Note that the T manual I have does
not state whether vectors are self evaluating either].

It would seem that any object denoted by the sharp would tend by
usage to be self evaluating ("constant").  However, this is nowhere
stated and the comments on page 6 (Other notations) seem to indicate
that # is or may be simply a read macro.

The specific question I started out with is "Are vectors self evaluating?".
Are they?  Also, are characters always self evaluating, or is this strictly
connected with the "#\" notation?



Pax & Thanks,
-Somewhat Confused	(tekla!kend)
----------------------------------------------------------------

I am a little confused also, but here's what I think happened.  After
Brandeis, TI requested over the net that characters written in the #\
notation should be guaranteed to evaluate to themselves, and no one
objected.  I forgot to change the grammar on page 7 or to mention
characters on page 12.

As for vectors, I think we decided not to decide at Brandeis, and so the
draft I sent off to MIT did not mention characters or vectors on page
12.  They were added at MIT as part of the final editing performed (I
assume) by Gerry Sussman and Hal Abelson..

I agree with the change, but some might question the decision on vectors.
There seem to be approximately two principled answers to the question of
which values must be quoted (answer 1: everything; answer 2: only symbols
and nonempty lists).  Any other answer will include arbitrary distinctions,
about which no definitive argument can be made.

I'll send your message and this reply on to RRRS-AUTHORS@MIT-MC.  The
inconsistencies you pointed out should be fixed.

Peace, Will Clinger
willc@tekronix.csnet