在Clojure中将一个带有三个参数的函数映射到三元素向量的向量上

Zur*_*iar 3 function clojure

我有一个功能:

(defn myfunc [x y z] ....does something interesting here )
Run Code Online (Sandbox Code Playgroud)

我有一组数据组:

(def mydata [[:a1 :b1 :c1] [:a2 :b2 :c2] [:a3 :b3 :c3]])
Run Code Online (Sandbox Code Playgroud)

我想调用myfunc三次,例如:

(myfunc :a1 :b1 :c1)
(myfunc :a2 :b2 :c2)
(myfunc :a3 :b3 :c3)
Run Code Online (Sandbox Code Playgroud)

我有一个模糊的理解,这将包括映射和解构?除此之外,我被卡住了..

Ole*_*Cat 6

要掌握的第一个重点是

(my-func :a1 :b1 :c1)
Run Code Online (Sandbox Code Playgroud)

在意识形态上是平等的

(apply my-func [:a1 :b1 :c1])
Run Code Online (Sandbox Code Playgroud)

之后你确定它,它很容易实现,你需要使用什么样的组合map,partial以及apply:

(def mydata [[:a1 :b1 :c1] [:a2 :b2 :c2] [:a3 :b3 :c3]])

(map (partial apply my-func) mydata)
Run Code Online (Sandbox Code Playgroud)