Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何合并clojure中向量集合内的哈希映射?_Clojure - Fatal编程技术网

如何合并clojure中向量集合内的哈希映射?

如何合并clojure中向量集合内的哈希映射?,clojure,Clojure,给定的分离哈希映射向量集合 我怎样才能从: [[{:a 1} {:b 2} {:c 3}] [{:a 4} {:b 5} {:c 6}] [{:a 7} {:b 8} {:c 9}]] 致: 谢谢你的回答 mapv(传递一个向量而不是一个惰性序列)是Clojure>=4。给出的答案将请求的嵌套结构返回给数据-一个向量向量向量,每个内部向量包含一个映射。当处理(map(partial apply merge)input coll)返回的映射序列似乎更简单时,很难想象为什么需要这种结构。下游函数或

给定的分离哈希映射向量集合

我怎样才能从:

[[{:a 1} {:b 2} {:c 3}] [{:a 4} {:b 5} {:c 6}] [{:a 7} {:b 8} {:c 9}]]
致:


谢谢你的回答

mapv
(传递一个向量而不是一个惰性序列)是Clojure>=4。给出的答案将请求的嵌套结构返回给数据-一个向量向量向量,每个内部向量包含一个映射。当处理
(map(partial apply merge)input coll)
返回的映射序列似乎更简单时,很难想象为什么需要这种结构。下游函数或API的哪个方面需要映射的酉向量?我以前没有见过
#(>)
习惯用法。当使用像
[]
这样的数据文字时,它是速记
#()
语法行为的一种变通方法吗?是的,它是。我还从未在任何clojure代码中看到过这一点,除了我的:)与
#(vector(into{}%))
相比有什么优势?没有什么是这样的,只是在本例中我们使用了向量文字符号
(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}]]
(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}]]
(def data [[{:a 1} {:b 2} {:c 3}] [{:a 4} {:b 5} {:c 6}] [{:a 7} {:b 8} {:c 9}]])

(mapv #(-> [(into {} %)]) data)