Lisp 删除所有事件

Lisp 删除所有事件,lisp,common-lisp,Lisp,Common Lisp,删除所有出现的问题5(0/32) 定义一个函数deleteAll,该函数有两个输入参数x和L,其中x是一个原子,L是一个包含任意级别的原子元素和子列表的列表,该函数返回一个列表,其中x的所有出现都从列表L中删除 当列表有子列表时,我有问题。我不能在子列表中递归地检查它是否包含重复项 (defun deleteAll (x L) (cond ((null L) nil) ((not(atom(car L))) (deleteAll x (cdr L)))

删除所有出现的问题5(0/32)

定义一个函数deleteAll,该函数有两个输入参数x和L,其中x是一个原子,L是一个包含任意级别的原子元素和子列表的列表,该函数返回一个列表,其中x的所有出现都从列表L中删除

当列表有子列表时,我有问题。我不能在子列表中递归地检查它是否包含重复项

(defun deleteAll (x L)
    (cond
      ((null L) nil)
      ((not(atom(car L))) (deleteAll x (cdr L)))
      ((not(eq x (car L))) (cons (car L) (deleteAll x (cdr L ))))
      (T(deleteAll x (cdr L)))))

在第二个术语中,您从谓词中知道第一个元素中有一个列表。除了需要处理
car
以及
cdr
“问题5(0/32)”之外,您应该执行与第三个结果相同的操作?你是要我们帮你做作业吗?@JoshuaTaylor他非常接近解决方案。@Sylvester当然,但是逐字逐句地发布作业问题和进行一些调试以隔离问题并具体询问问题之间是有区别的(我确实认识到这一点)“当列表有子列表时,我有问题。我不能在子列表中递归地检查它是否包含重复的列表。”。即便如此,复制和粘贴作业而不加署名也是剽窃行为,可能存在版权问题。@JoshuaTaylor,这难道不是合理使用吗?我发布问题只是为了说明问题所在,我不是想让你们做作业,即使不是作业。我真正的问题是如何获取子列表的元素。我不知道你们为什么生气这有什么大不了的