给定一组分离哈希映射的向量,
如何从以下内容中获得:
[[{:a 1} {:b 2} {:c 3}] [{:a 4} {:b 5} {:c 6}] [{:a 7} {:b 8} {:c 9}]]
To:
[[{:a 1 :b 2 :c 3}] [{:a 4 :b 5 :c 6}] [{:a 7 :b 8 :c 9}]]
感谢您的回答!
给定一组分离哈希映射的向量,
如何从以下内容中获得:
[[{:a 1} {:b 2} {:c 3}] [{:a 4} {:b 5} {:c 6}] [{:a 7} {:b 8} {:c 9}]]
To:
[[{:a 1 :b 2 :c 3}] [{:a 4 :b 5 :c 6}] [{:a 7 :b 8 :c 9}]]
(def coll [[{:a 1} {:b 2} {:c 3}] [{:a 4} {:b 5} {:c 6}] [{:a 7} {:b 8} {:c 9}]])
(mapv (fn [v] [(apply merge v)]) coll)
;; => [[{:a 1 :c 3 :b 2}] [{:a 4 :c 6 :b 5}] [{:a 7 :c 9 :b 8}]]
mapv
(返回向量而不是惰性序列)是 Clojure >= 4 中的函数。只是这么说。 - i-blis(def data [[{:a 1} {:b 2} {:c 3}] [{:a 4} {:b 5} {:c 6}] [{:a 7} {:b 8} {:c 9}]])
(mapv #(-> [(into {} %)]) data)
#(-> ...)
这种用法。它是否是在使用像 []
这样的数据字面量时,绕过简写的 #()
语法行为的一种解决方法? - Alex Stoddard
(map (partial apply merge) input-coll)
返回的映射序列更简单。下游函数或API的哪个方面需要向量化的映射单元向量? - Alex Stoddard