10.2.5 Вычисление форм функций

Если первый элемент вычисляемого списка является объектом функции Lisp, объектом байт-кода или объектом примитивной функции, то этот список является вызовом функции. Например, вот вызов функции +:

(+ 1 x)

Первый шаг в вычислении вызова функции — это вычисление оставшихся элементов списка слева направо. Результаты являются фактическими значениями аргументов, по одному значению для каждого элемента списка. Следующий шаг — вызвать функцию с этим списком аргументов, фактически используя функцию apply (см. Вызов функций). Если функция написана на Lisp, аргументы используются для привязки переменных аргументов функции (см. Лямбда-выражения); затем вычисляются формы в теле функции по порядку, и значение последней формы тела становится значением вызова функции.