-2
我想写一个函数,该函数从列表的任何 级别删除所有出现的原子。我的代码:lisp从列表中删除所有出现的信息
(defun sterge (e l)
(cond
((and (atom l) (equal e l)) nil)
((atom l) (list l))
(t (list (mapcan '(lambda (l) (sterge e l)) l)))))
(defun sterg (e l)
(car (sterge e l)))
当我执行它给了我:
(sterg '(1 2 (1 3)) 1)
1
我把任何价值,它给了我1,什么是错的?
许多事情在这里说,但只是基础知识 - 你是不是用反向参数调用这个函数? 'e'是元素,'l'是列表,对吗? – uselpa
然后你只需要在'(lambda ...)'前面删除引号就可以了。 – uselpa
它的工作得益于您的意见,但@uselpa,为什么它删除报价后工作? – Nero