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

时间:2016-02-09 15:20:18

标签: clojure clojurescript

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

(f [a a] [b b]) ; > [a b a b]

我想到了这一点:

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

但也许有更简单的方法。

3 个答案:

答案 0 :(得分:8)

您可以使用interleave

(interleave [:a :a] [:b :b])

答案 1 :(得分:1)

另一种选择:

w3wp

(apply into (map vector [:a1 :a2] [:b1 :b2])) 是可行的方法。

答案 2 :(得分:1)

您可以使用解构:

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