nil being self-evaluating is not strange. Since nil is a symbol it can be defined as a constant. So there is nothing to stop a Lisp implementation saying (in CL):
nil
(defconstant nil 'nil)
just the same as
(defconstant t 't)
What is strange is these things:
()
nil
being self-evaluating is not strange. Sincenil
is a symbol it can be defined as a constant. So there is nothing to stop a Lisp implementation saying (in CL):just the same as
What is strange is these things:
()
is a list but not a cons()
is both a list and a symbol()
is self-evaluating