2015-04-14 65 views
0

刪除所有出現的問題5(0/32)刪除所有出現

定義一個函數deleteAll具有兩個輸入參數x和L,其中,x是原子,L是一個包含原子元素和子列表的列表任何級別,並且函數返回一個列表,其中列表中所有出現的x都從列表L中刪除。

列表中包含子列表時出現問題。我不能在子列表中遞歸地檢查它是否包含重複或不是。

(defun deleteAll (x L) 
    (cond 
     ((null L) nil) 
     ((not(atom(car L))) (deleteAll x (cdr L))) 
     ((not(eq x (car L))) (cons (car L) (deleteAll x (cdr L)))) 
     (T(deleteAll x (cdr L))))) 
+0

「問題5(0/32)」?你是要求我們爲你做功課嗎? –

+0

@JoshuaTaylor他非常接近解決方案。 – Sylwester

+0

@Sylwester當然,但是將作業問題逐字發佈並做一些調試來區分問題並專門提出問題是有區別的(並且我確實認識到「當列表具有子列表時,我有問題,我無法在子列表中遞歸地檢查它是否包含重複或不)「。即便如此,沒有歸屬地複製和粘貼作業作業也是可能導致版權問題的剽竊。 –

回答

0

在第二學期你從謂詞中知道你在第一個元素中獲得了一個列表。除了需要處理car以及cdr之外,您應該按照第三個結果執行相同操作。