我有一个带两个参数的函数。
现在我想:
(map fn x [y1 y2 y3])
我需要在fn
x y1 , x y2 , x y3
的结果
有人可以帮忙吗?
答案 0 :(得分:4)
这就是部分原因。
http://clojuredocs.org/clojure_core/clojure.core/partial
针对您的具体情况:
(map (partial fn x) [y1 y2 y3])
答案 1 :(得分:4)
有几种方法可以做到这一点:
首先,根据需要重复x
。
(map fn (repeat x) [y1 y2 y3])
repeat
将返回一个懒惰的xs序列。
另一种方法是使用partial
函数,该函数应用于已经绑定到原始函数的参数部分。
(map (partial fn x) [y1 y2 y3])
(partial fn x)
将返回x
已应用于原始fn
的函数。结果将是((fn x y1) (fn x y2) (fn x y3))
。
答案 2 :(得分:3)
(map #(f x %) [y1 y2 y3])
#()是(fn [args](...))的读者宏