13.2.1 Компоненты лямбда-выражения

Лямбда-выражение — это список, который выглядит следующим образом:

(lambda (arg-variables…)
  [documentation-string]
  [interactive-declaration]
  body-forms…)

Первый элемент лямбда-выражения всегда является символом lambda. Это указывает на то, что список представляет собой функцию. Причина, по которой функции определяются с помощью lambda, заключается в том, чтобы другие списки, предназначенные для других целей, случайно не были восприняты как функции.

Второй элемент — это список символов — имена переменных аргументов (см. Особенности списков аргументов). Это называется списком лямбда. Когда вызывается функция Lisp, значения аргументов сопоставляются с переменными в списке лямбда, которым присваиваются локальные привязки с предоставленными значениями. См. Локальные переменные.

Строка документации — это объект строки Lisp, помещенный в определение функции для описания функции для служб справки Emacs. См. Строки документации функций.

Интерактивное объявление — это список вида (interactive code-string). Это объявляет, как предоставлять аргументы, если функция используется интерактивно. Функции с таким объявлением называются командами; их можно вызывать с помощью M-x или привязывать к клавише. Функции, которые не предназначены для вызова таким образом, не должны иметь интерактивных объявлений. См. Определение команд, о том, как написать интерактивное объявление.

Остальные элементы — это тело функции: код Lisp, который выполняет работу функции (или, как сказал бы программист Lisp, «список форм Lisp для вычисления»). Значение, возвращаемое функцией, — это значение, возвращаемое последним элементом тела.