混合两个向量:[a] 和 [b b] 到 [a b]
Mixing two vectors: [a a] and [b b] to [a b a b]
我怎样才能将两个给定的向量混合成一个新的向量,它以交替的顺序保存它们的值。
(f [a a] [b b]) ; > [a b a b]
我想到了这个:
(flatten (map vector [:a1 :a2] [:b1 :b2]))
但也许有更简单的方法。
您可以使用 interleave
:
(interleave [:a :a] [:b :b])
另一种选择:
(apply into (map vector [:a1 :a2] [:b1 :b2]))
interleave
是要走的路。
你可以使用解构:
((fn [[a1 a2] [b1 b2]] [a1 b1 a2 b2]) [1 2] [3 4])
;[1 3 2 4]
我怎样才能将两个给定的向量混合成一个新的向量,它以交替的顺序保存它们的值。
(f [a a] [b b]) ; > [a b a b]
我想到了这个:
(flatten (map vector [:a1 :a2] [:b1 :b2]))
但也许有更简单的方法。
您可以使用 interleave
:
(interleave [:a :a] [:b :b])
另一种选择:
(apply into (map vector [:a1 :a2] [:b1 :b2]))
interleave
是要走的路。
你可以使用解构:
((fn [[a1 a2] [b1 b2]] [a1 b1 a2 b2]) [1 2] [3 4])
;[1 3 2 4]