Tome esta función:¿Por qué un defun no LISP requiere una cotización antes de su argumento de parámetro?
(defun sum-greater (x y z)
(> (+ x y) z))
Es mi entendimiento de que en LISP el primer elemento de una lista siempre representa una función a realizar sobre los átomos posteriores/listas. Entonces, ¿por qué LISP no trata el x
en (x y z)
como una función que se realizará en y
y z
? Claramente, este no sería un comportamiento deseable, pero sería el comportamiento esperado.
¿Presumiblemente la función que define defun
de alguna manera anula la evaluación LISP estándar de una lista? Si es así, ¿podrías detallar esto?
Gracias
Retrasa la evaluación en todos sus otros argumentos, también: ¡obviamente no quiere '(> ...)' evaluar cuando evalúa la forma 'defun', tampoco! – Ken
Buen punto, debería haber reconocido que defun fue más que una función normal de eso solo ... –