The type function is to be disjoint from cons and symbol, and so a list whose car is lambda is not, properly speaking, of type function, nor is any symbol. However, standard Common Lisp functions that accept functional arguments will accept a symbol or a list whose car is lambda and automatically coerce it to be a function; such standard functions include funcall, apply, and mapcar. Such functions do not, however, accept a lambda-expression as a functional argument; therefore one may not write
but instead one must write something like
This change makes it impermissible to represent a lexical closure as a list whose car is some special marker.
The value of a function special operator will always be of type function.