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


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.