从列表中删除原子的出现-LISP

从列表中删除原子的出现-LISP,lisp,Lisp,我是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

我是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)

谢谢。

第二个案例应该叫rematom:

  ((EQ (car LAT) A) (rematom A (cdr LAT)))

只有第一种情况,即检查空列表的基本情况,应该是非递归的。这里的其他人需要递归调用rematom

这里是什么?((EQ(car LAT)A)(rematom A(cdr LAT))),是的,这解决了它,非常感谢您的帮助。