-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