Возьмите эту функцию:
(defun sum-greater (x y z)
(> (+ x y) z))
Я понимаю, что в LISP первый элемент в списке всегда представляет собой функцию, которая будет выполняться на последующих атомах/списках. Итак, почему LISP обрабатывает x
в (x y z)
как функцию, выполняемую на y
и z
. Очевидно, это было бы нежелательно, но это было бы ожидаемым поведением.
Предположительно, функция, которая определяет defun
, как-то переопределяет стандартную оценку списка LISP списка? Если да, можете ли вы это подробно описать?
Спасибо