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])
。但可以肯定的是,交织
肯定更好