这是我的代码:
(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))
我收到此错误:
错误:未绑定变量:A 在进程监听器(1)中执行:CCL :: CHEAP-EVAL-IN-ENVIRONMENT。 键入:GO继续,:POP中止,:R表示可用的重新启动列表。 如果继续:重试获取A的值。 类型:?其他选择。 1>
该功能适用于数字,我环顾四周,我不知道如何解决这个问题。
答案 0 :(得分:0)
就在这里:
(remv a '(a (b) a c))
仅a
和(quote a)
之间存在巨大差异,同时也写为'a
。第一个是对符号a
之后命名的变量的引用,在您的情况下是未绑定的,而第二个是名为a
的符号。
如果您的函数应该使用数字并且您想测试它是否成功,请给它编号。在这里,您将带符号的符号列表作为第二个参数传递。