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
Clojure 混合两个向量:[a]和[b]到[a b]_Clojure_Clojurescript - Fatal编程技术网

Clojure 混合两个向量:[a]和[b]到[a b]

Clojure 混合两个向量:[a]和[b]到[a b],clojure,clojurescript,Clojure,Clojurescript,如何将两个给定的向量混合到一个新的向量中,以交替顺序保持它们的值 (f [a a] [b b]) ; > [a b a b] 我想到这一点: (flatten (map vector [:a1 :a2] [:b1 :b2])) 但也许有一种更简单的方法。您可以使用交织: (interleave [:a :a] [:b :b]) 另一种选择: (apply into (map vector [:a1 :a2] [:b1 :b2])) 交错是一种方法。您可以使用解构: ((fn [[a

如何将两个给定的向量混合到一个新的向量中,以交替顺序保持它们的值

(f [a a] [b b]) ; > [a b a b]
我想到这一点:

(flatten (map vector [:a1 :a2] [:b1 :b2]))

但也许有一种更简单的方法。

您可以使用
交织

(interleave [:a :a] [:b :b])
另一种选择:

(apply into (map vector [:a1 :a2] [:b1 :b2]))

交错
是一种方法。

您可以使用解构:

((fn [[a1 a2] [b1 b2]] [a1 b1 a2 b2]) [1 2] [3 4])
;[1 3 2 4]

顺便说一下,有一个
mapcat
函数可以避免展平:
(mapcat向量[:a1:a2][:b1:b2])
。但可以肯定的是,
交织
肯定更好