[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
#!null
Is anyone out there particularly enamored of the non-essential feature
#!NULL? I would like to remove it for these reasons:
- It unnecessarily complicates the grammar of <expression>'s and <datum>'s:
- As a <datum>, it is redundant with (), and users will be confused
about when to use it in preference to ().
- As an <expression>, it is redundant with '() and (LIST).
- If it is the same as () for all purposes, and it is implemented,
then we must change the RRRS so that either [a] () is an a legitimate
expression, which it is not either according to consensus or according
to the RRRS; or [b] #!null is NOT a legitimate expression, which
would be inconsistent with the syntactically similar #!true and #!false.
[If #!null is not the same as (), then either the <expression> parser
must differ from the <datum> parser, or implementations must be able to
represents two different empty lists (one which self-evaluates and
another which doesn't).]
If you think that you want the <expression> #!NULL to exist so that
people have a quote-less way to write an expression producing an empty
list, I would argue that there are nicer ways to rewrite '() without
using '. E.g., (LIST). If this is your ONLY reason and you don't like
(LIST), then I would argue to replace the syntax #!NULL with a variable
binding, say NULL or THE-EMPTY-LIST, whose value is an empty list.