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

Re: Which constants must be quoted?

I agree with all your comments except the rationale for quoting the
empty list.  There is no such thing as an "empty combination", the
RRRS not withstanding.

There is a practical reason for allowing unquoted ().  If #!null
and #!false are just reader syntax for (), then requiring a quote
on () is tantamount to requiring a quote on #!null and #!false
(this is especially bothersome within the code for a syntactic
extension or other program transformation, where two quotes are
required to produce a quoted () in the expansion).

On the other hand, there sems to be no practical reason to require
the quote.  I can think of only two valid reasons to require the
quote: (1) to simplify the semantics of the language, or (2) to
allow the compiler to catch a common programming error.  I don't
believe either reason applies here.

Perhaps () should be recognized as the "empty special form" rather
than the "empty combination".  Of course, the empty special form
always evaluates to ().