2.13 Функции

Тип function не должен пересекаться с cons и symbol, и таким образом список, у которого car элемент этоlambda не является, честно говоря, типом function, ровно как и любой символ.

Однако стандартные Common Lisp’овые функции, которые принимают функциональные аргументы, будут принимать символ или список, у которого car элемент является lambda и автоматически преобразовывать их в функции. Эти функции включают в себя funcall, apply и mapcar. Такие функции, однако, не принимают лямбда-выражение в качестве функционального аргумента. Таким образом нельзя записать

(mapcar ’(lambda (x y) (sqrt (* x y))) p q)

но можно что-то вроде

(mapcar #’(lambda (x y) (sqrt (* x y))) p q)

Это изменение сделало недопустимым представление лексических замыканий, как списка, у которого car элемент является некоторым специальным маркером.

Значение оператора function всегда будет принадлежать типу function.