如何在clojure中组合两个向量元素的向量?

Joh*_*den 8 list vector clojure

假设我有:

'[[c c c]
  [y y y]
  [m m m]]
Run Code Online (Sandbox Code Playgroud)

'[[r g b]
  [r g b]
  [r g b]]
Run Code Online (Sandbox Code Playgroud)

我想要:

'[[[c,r] [c,g] [c,b]]
  [[y,r] [y,g] [y,b]]
  [[m,r] [m,g] [m,b]]]
Run Code Online (Sandbox Code Playgroud)

在clojure中这样做的优雅方法是什么?

Ale*_*ard 8

(def a '[[c c c]
         [y y y]
         [m m m]])
(def b '[[r g b]
         [r g b]
         [r g b]])

(mapv (partial mapv vector) a b) ;; will work with arbitrary number 
                                 ;; of equal sized arguments

;=> [[[c r] [c g] [c b]] [[y r] [y g] [y b]] [[m r] [m g] [m b]]]
Run Code Online (Sandbox Code Playgroud)