请看下面的代码:基本Clojure:如何拼合嵌套列表?
(def data {:color ["R", "B", "G"] :name "Hello" :up "down"})
(defn collapse-vector-kvp [k v]
(map #(hash-map k %) v))
(defn collapse-map [m]
(map #(let
[x %]
(if (vector? (val x))
(collapse-vector-kvp (key x) (val x))
(hash-map (key x) (val x))
)) m))
(collapse-map data)
=> ({:name "Hello"} ({:color "R"} {:color "B"} {:color "G"}) {:up "down"})
我希望做的是建立一个单一的列表,而不是有“色”的条目是列表中的列表。这很容易实现吗?
我喜欢你的问题是如何包含了答案。 :) –
@IvanKoblik更好,问题标题包含答案:) – mishadoff
哈哈,我改变了标题,以便它更搜索友好:P – acron