不定量参数柯里化处理
柯里化(currying)
要理解柯里化,最直观的方式是先从一个非正式的定义入手,之后再将其拓展适配到各种不同的领域。首先,我们需要建立一些符号表示:符号X→Y表示所有从X到Y的函数。若f是这样一个函数,我们记作 f:X→Y。而 X×Y则表示 X和Y中元素的有序对集合,也就是X和Y的笛卡尔积。这里的 X和Y既可以是集合,也可以是类型,或是其他类型的对象。
给定一个函数
f:(X×Y)→Z
柯里化会构造出一个新函数
g:X→(Y→Z)
也就是说,g接收一个类型为 X的参数,并返回一个类型为Y→Z的函数。它的定义如下:
g(x)(y)=f(x,y)
其中 x是类型 X的元素,y是类型Y的元素。我们也可以记作:
curry(f)=g
实现
1 | |
使用
对于任何函数,使用curry函数后都能实现柯里化,举例如下:
1 | |
不定量参数柯里化处理
http://example.com/2026/03/05/不定量参数柯里化处理/