2.4.13 Тип функции

Функции Lisp — это исполняемый код, как и функции в других языках программирования. В Lisp, в отличие от большинства языков, функции также являются объектами Lisp. Нескомпилированная функция в Lisp — это лямбда- выражение: то есть список, первый элемент которого — символ lambda (см. Лямбда-выражения).

В большинстве языков программирования невозможно иметь функцию без имени. В Lisp функция не имеет внутреннего имени. Лямбда-выражение может вызываться как функция, даже если у него нет имени; для подчеркивания этого мы также называем его анонимной функцией (см. Анонимные функции). Именованная функция в Lisp — это просто символ с действительной функцией в своей ячейке функции (см. Определение функций).

В большинстве случаев функции вызываются, когда их имена записаны в выражениях Lisp в программах Lisp. Однако вы можете сконструировать или получить объект функции во время выполнения и затем вызвать его с помощью примитивных функций funcall и apply. См. Вызов функций.