函数式编程之-Partial application
上一篇关于Currying的介绍,我们提到F#是如何做Currying变换的: let addWithThreeParameters x y z = x + y + z let intermediateFn1 = addWithThreeParameters 1 给定一个接受三个参数的函数 addWithThreeParameters ,我们通过 let intermediateFn1 = addWithThreeParameters 1 这样的方式创建出了一个新的函数 intermediateFn1 ,其函数签名为: int -> int -> int 上面是F#用来描述函数签名的方式,它表示函数接受两个int类型的参数,返回类型为int类型。 类似地: (int -> int) -> int 表示参数为 (int -> int) 类型的函数,返回类型为int;而 (int -> int) 又是一个函数,表示接受一个int类型的参数,返回类型仍然为int。 对于F#而言,函数本身需要接受三个参数,但是我们调用的时候只给一个参数,从而创建出接受两个参数的新函数,这种方式被称作是 Partial application 。也就是说我们通过 Partial application 的方式完成了Currying。 Partial application 是常用的函数式编程风格