gpt4 book ai didi

syntax - 用于从列表中删除给定元素的 LISP 函数不起作用

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

这是我的代码:

(defun remv(a L)
(if (null L) nil
(if (typep (first L) 'list) (cons (remv a (first L)) (remv a (rest L)))
(if (= a (first L)) (remv a (rest L)) (cons (first L) (remv a (rest L)))))))

当我调用它时:

(remv a '(a (b) a c))

我收到此错误:

Error: Unbound variable: A While executing: CCL::CHEAP-EVAL-IN-ENVIRONMENT, in process listener(1). Type :GO to continue, :POP to abort, :R for a list of available restarts. If continued: Retry getting the value of A. Type :? for other options. 1 >

该函数适用于数字,我环顾四周,但不知道如何解决这个问题。

最佳答案

就在这里:

(remv a '(a (b) a c))

单独a(quote a),也写成'a是有很大区别的。第一个是对以符号 a 命名的变量的引用,在您的情况下未绑定(bind),而第二个是名为 a 的符号本身。

如果您的函数应该使用数字,并且您想测试它是否成功,请给它数字。在这里,您传递了一个带引号的符号列表作为第二个参数。

关于syntax - 用于从列表中删除给定元素的 LISP 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36533189/

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