简单谈谈Clojure语言的函数的部分施用和柯里化·

2017-10-03  本文已影响35人  每天学点编程

函数的部分施用

传给(partial f a1 a2 …)若干数量不足的参数,它将返回经过部分施用的函数f,可凭余下的参数进行调用。

subtract-from-hundred函数定义为部分施用“-”运算符(Clojure语言对运算符和函数进行了区分),并设定了部分施用的参数100。Clojure的部分施用可以用在单参数函数上,也可以用在多参数函数上。

柯里化

由于Clojure是动态类型的语言,并且支持可变长度的参数列表,它没有将柯里化实现成一种语言特性,相关的场景交由部分施用去处理。

不过Clojure在Reducers库里有一个命名空间内私有的(defcurried …)函数,虽然其本意是方便库内的函数定义,但凭借Lisp家族血脉里与生俱来的灵活性,扩大一下(defcurried …)的使用范围简直小菜一碟。

上一篇 下一篇

猜你喜欢

热点阅读