函数的部分施用
传给(partial f a1 a2 …)
若干数量不足的参数,它将返回经过部分施用的函数f
,可凭余下的参数进行调用。
将subtract-from-hundred
函数定义为部分施用“-”运算符(Clojure语言对运算符和函数进行了区分),并设定了部分施用的参数100。Clojure的部分施用可以用在单参数函数上,也可以用在多参数函数上。
柯里化
由于Clojure是动态类型的语言,并且支持可变长度的参数列表,它没有将柯里化实现成一种语言特性,相关的场景交由部分施用去处理。
不过Clojure在Reducers库里有一个命名空间内私有的(defcurried …)
函数,虽然其本意是方便库内的函数定义,但凭借Lisp家族血脉里与生俱来的灵活性,扩大一下(defcurried …)
的使用范围简直小菜一碟。
网友评论