gpt4 book ai didi

lisp - 需要帮助来理解 LISP

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

我正在尝试编写自己的最大函数(目前列表中有 2 个元素)但是在执行简单函数时出错:

(defun max_for_vararg (list)
(if (null list)
(nil))
(if (> (car list) (cdr list))
(car list)
(cdr list)))

错误为:

? (max_for_vararg '(2 4))
> Error: The value (4) is not of the expected type REAL.
> While executing: CCL::>-2, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.

如果有人能帮助我理解它,我将不胜感激。错误似乎让我感到困惑,因为像下面这样的类似函数运行正常但没有返回最大值。

(defun max_for_vararg (list)
(if (null list)
(nil))
(if (> (car list))
(car list)
(cdr list)))

最佳答案

使用 cadr 而不是 cdrCdr 为您提供列表的其余部分,这是一个单元素列表。因此,您必须在该列表 (car (cdr list)) 上调用 car。由于这是一件很常见的事情,他们让 cadr 成为一个计算结果的函数。

关于lisp - 需要帮助来理解 LISP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39542217/

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