這個函數應該刪除列表內部的所有圓括號。我不問如何做到這一點(我已經知道這將是一個重複的),我問爲什麼,當我跑我的解決方案,它打破了這裏告訴我我的扁平函數有什麼問題
"Error: The variable APPEND is unbound."
是我的代碼
(defun flatten (lst)
(cond ((null lst) lst)
((listp (first lst))(append((flatten(first lst)) flatten(rest lst))))
(append(list(first lst) flatten(rest lst)))))
繼承人如何支持其工作: 1:首先檢查列表是否爲空。基本案例 2:然後它檢查它的第一個元素是否是一個列表。如果是,則它將該列表附加到列表尾部的遞歸調用結果上 3:最後,如果第一個元素不是子列表,則它會將包含該元素的列表附加到列表的結果上遞歸調用尾部。
什麼不起作用?
編輯
我只想補充一點,這是字面上口齒不清我有史以來第一次節目。如果我的錯誤是由於括號放置或其他菜鳥錯誤引起的,我不知道,因爲我仍在適應用功能語言編程。
GNU Common Lisp,我寫了它。 – jokeSlayer94
順便說一句,你的邏輯對'(((1))((2)))'不起作用。「你需要在第一次和第二次都追加遞歸結果。 – Sylwester
我需要將它們追加到什麼?彼此?我現有的名單? – jokeSlayer94