我是LISP的新手,在这里我试图从列表中删除所有出现的原子 -
到目前为止我的代码 -
(defun rematom (A LAT)
(cond
((null LAT) ())
((EQ (car LAT) A car LAT))
(T (cons (car LAT)(rematom, A (cdr LAT))))
)))
此代码删除了第一次出现的元素,如何删除所有出现的内容?
我的输出 -
> (rematom 'a '(a b c a d a))
(B C A D A)
渴望 -
>(rematom 'a '(a b c a d a))
(B C D)
感谢。
答案 0 :(得分:1)
第二种情况应该调用rematom:
((EQ (car LAT) A) (rematom A (cdr LAT)))
只有第一种情况,即检查空列表的基本情况,应该是非递归的。这里的其他人需要递归地调用rematom。