【发布时间】:2011-05-10 21:15:57
【问题描述】:
取这个函数:
(defun sum-greater (x y z)
(> (+ x y) z))
据我了解,在 LISP 中,列表中的第一个元素始终表示要在后续原子/列表上执行的函数。那么为什么 LISP 不将(x y z) 中的x 视为要在y 和z 上执行的函数。显然,这不是可取的行为,但会是预期的行为。
大概定义defun 的函数会以某种方式覆盖列表的标准LISP 评估?如果是这样,您能详细说明一下吗?
谢谢
【问题讨论】:
-
它也会延迟对其所有其他参数的评估:您显然也不希望在评估
defun表单时评估(> ...)! -
好点,我应该认识到 defun 不仅仅是一个普通的功能......
标签: lisp common-lisp sbcl