函数式编程:偏函数 (Partial application)
一个与 Currying 很类似的东西,其实Currying是一种特殊的偏函数
定义
维基百科中对偏函数 (Partial application) 的定义为:
In computer science, partial application (or partial function application)
refers to the process of fixing a number of arguments to a function,
producing another function of smaller arity.
关于偏函数
我们创造一个新函数,让现有的一些参数值固定
偏函数的好处
- 通过创建一个名称易懂的独立函数
(double,triple等)
,调用时无需每次传入第一个参数,因为第一个参数通过bind
提供了固定值。 - 另一种使用偏函数情况是,当我们有一个很通用的函数,为了方便提供一个较常用的变体。举例,我们有一个函数
send(from, to, text)
,那么使用偏函数可以创建一个从当前用户发送的变体:sendTo(to, text)
偏函数与柯里化区别
- 柯里化是将一个多参数函数转换成多个单参数函数,也就是将一个 n 元函数转换成 n 个一元函数。
- 局部应用则是固定一个函数的一个或者多个参数,也就是将一个 n 元函数转换成一个 n - x 元函数。