gpt4 book ai didi

lisp - 为什么 LISP defun 在其参数参数之前不需要引号?

转载 作者:太空宇宙 更新时间:2023-11-03 18:33:21 25 4
gpt4 key购买 nike

取这个函数:

(defun sum-greater (x y z)
(> (+ x y) z))

据我了解,在 LISP 中,列表中的第一个元素始终表示要对后续原子/列表执行的函数。那么,为什么 LISP 不将 (x y z) 中的 x 视为要在 yz 上执行的函数>。显然,这不是理想的行为,但却是预期的行为。

大概是定义 defun 的函数以某种方式覆盖了列表的标准 LISP 评估?如果是这样,您能否详细说明一下?

谢谢

最佳答案

IIRC 在 Common Lisp 中至少 defun 是一个宏 ( HyperSpec ),这意味着它可以为其参数定义任何评估策略。

关于lisp - 为什么 LISP defun 在其参数参数之前不需要引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4195637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com