1
給定一個嵌套集合我想減少它僅是形式爲[_ d]其中d是整數第k-V對。比如我想改變如下:如何減少不使用可變狀態嵌套集合?
; Start with this ...
{:a {:val 1 :val 2} :b {:val 3 :c {:val 4}} :val 5}
; ... end with this
{:val 1, :val 2, :val 3, :val 4, :val 5}
我已經寫了使用postwalk如下功能:
(defn mindwave-values [data]
(let [values (atom {})
integer-walk (fn [x]
(if (map? x)
(doseq [[k v] x]
(if (integer? v) (swap! values assoc k v)))
x))]
(postwalk integer-walk data)
@values))
我很好奇,如果有可能做到這一點,而無需使用可變的狀態?
編輯原有的功能是不完全正確。
我喜歡這個。我在發佈答案的同時更新了我的問題 - 對此感到抱歉。儘管如此,你的回答告訴我如何做到沒有狀態。謝謝。 – 2013-04-28 20:47:48