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

时间:2016-04-02 14:23:58

标签: function clojure

我有一个功能:

(defn myfunc [x y z] ....does something interesting here )

我有一组数据组:

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

我想调用myfunc三次,例如:

(myfunc :a1 :b1 :c1)
(myfunc :a2 :b2 :c2)
(myfunc :a3 :b3 :c3)

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

1 个答案:

答案 0 :(得分:6)

要掌握的第一个重点是

(my-func :a1 :b1 :c1)

在意识形态上等于

(apply my-func [:a1 :b1 :c1])

在您使用它之后,使用mappartialapply的组合很容易实现您的需求:

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

(map (partial apply my-func) mydata)