我試圖創建一個映射函數,通過每個元素並應用操作。它就像一個map
函數,但深入。Clojure - 通過所有級別的地圖
該函數需要兩個參數;一個函數和一個參數。
這是我到目前爲止有:
(defn go-through
[op & args]
(if-not (sequential? (first args))
(apply op args)
(apply (partial map go-through op) args)))
而且我知道,最後一行是行不通的,即使沒有調用它。但我不知道其他方式。
建議?
也許我限制了這種功能的用途。
樣品:
user=> (go-through + 1 2)
3
user=> (go-through + [1 2] [3 4])
IllegalArgumentException Don't know how to create ISeq from: clojure.core$_PLUS_ clojure.lang.RT.seqFrom (RT.java:494)
我期待[4 6]
的想法是這個應用與單元素,而不是sequentials操作的任何功能。
你能不能包括一個樣本輸入和輸出?它應該保留樹結構還是生成一個seq? –
@ArthurUlfeldt,它應該保留樹結構。 – Zchpyvr
你想要[4 6]還是[3 7]? – DanLebrero