我有一个功能:
(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)
我有一个模糊的理解,这将包括映射和解构?除此之外,我被卡住了..
要掌握的第一个重点是
(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)