2
您好我是clojure的新手,我試圖編寫一個函數來從列表的每個頂級元素中刪除一對括號。如果頂層元素不是列表,那麼它也會被添加。例如,Clojure - 遞歸功能
>(up '((1 2) (3 4)))
(1 2 3 4)
>(up '(x (y) z))
(x y z)
現在,我在使用功能結束的太早,如果我試圖刪除一個對括號的問題。如果可能的話,我想遞歸地執行此操作,而不需要其他函數的幫助。我有什麼的時刻:
(defn up [lst]
(if (empty? lst)
()
(if (list? (first lst))
(up (first lst))
(cons (first lst) (up (rest lst))))))
我知道,問題是,我利弊-ING與結束我的函數嵌套列表的最後一個元素的空單,但我無法弄清楚如何別的要做。
你想重新實現扁平化還是隻刪除一級括號? Óscar的答案完全使整個序列變平。 – 2014-09-05 05:03:02
我想扁平它。 – 2014-09-05 05:10:51