我需要從列表中刪除包含內部列表的元素。預定義元素也應該從每個內部列表中刪除。LISP - 使用嵌套列表從列表中刪除元素
我已經開始用下面的代碼工作:
(SETQ L2 '(a b (a 2 b) c 1 2 (D b (a s 4 2) c 1 2 a) a)) ; defined my list
; Created a function for element removing
(defun elimina (x l &optional l0)
(cond ((null l)(reverse l0))
((eq x (car l))(elimina x (cdr l) l0))
(T (elimina x (cdr l) (cons (car l) l0))))
)
(ELIMINA 'a L2)
但不幸的是它消除了嵌套列表以外的唯一要素。
我試圖創建一個額外的功能,這將從內列表中刪除的元素。
(defun elimina-all (x l)
(cond ((LISTP (CAR L))(reverse l)(elimina x (car l)))
(T (elimina-all x (CDR L)))
)
)
但仍不成功。
能否請你幫我去解決它?
預先感謝您。
這是功課嗎?如果是,請添加標籤作業。 –
你也應該正確地縮進你的代碼。因爲它現在很難閱讀。 –