Why is the null predicate called null, not nullp?

common-lisp, lisp

Solution

First of all, `null` is not the only one. See `atom`.

Second, I think these predicates are fundamental ones and thus, very old. I don't think the 'end with p' agreement was introduced from the very beginning of LISP.

Also interesting info on the topic:

By convention, the names of predicates usually end in the letter p (which stands for 'predicate'). Common Lisp uses a uniform convention in hyphenating names of predicates. If the name of the predicate is formed by adding a p to an existing name, such as the name of a data type, a hyphen is placed before the final p if and only if there is a hyphen in the existing name. For example, number begets numberp but standard-char begets standard-char-p. On the other hand, if the name of a predicate is formed by adding a prefixing qualifier to the front of an existing predicate name, the two names are joined with a hyphen and the presence or absence of a hyphen before the final p is not changed. For example, the predicate string-lessp has no hyphen before the p because it is the string version of lessp (a MacLisp function that has been renamed < in Common Lisp). The name string-less-p would incorrectly imply that it is a predicate that tests for a kind of object called a string-less, and the name stringlessp would connote a predicate that tests whether something has no strings (is ``stringless'')!

Source: http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node69.html

Problem

Basically, the title says it all: In Common Lisp, why is the `null` predicate called `null`. not `nullp` (to conform to other predicates such as `evenp` or `oddp`)? Is there a special reason for this?

Original source