partial
接受一个函数 f
,
以及少于正常 f
所接受参数数量的参数,
并返回一个匿名函数。
当这个匿名函数被调用时,
传给它的附加参数(additional args)会和之前给定的参数一起,
传给函数 f
。
user=> (def three-times (partial * 3))
#'user/three-times
user=> (three-times 10) ; (* 3 10)
30
user=> (three-times 20) ; (* 3 20)
60
user=> (defn add-x-y-z [x y z]
(+ x y z))
#'user/add-x-y-z
user=> (def add-y-z (partial add-x-y-z 0)) ; x = 0
#'user/add-y-z
user=> (def add-z (partial add-y-z 1)) ; y = 1
#'user/add-z
user=> (add-z 2) ; z = 2
3 ; (+ 0 1 2)