删除所有出现的问题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)))))

最佳答案

在第二个术语中,从谓词可以知道第一个元素中有一个列表除了需要处理carcdr之外,您应该执行与第三个结果相同的操作。

08-04 20:08