函数柯里化

Posted by 秦 on November 6, 2024

函数柯里化

[TOC]

概念理解

柯里化(Currying)其实是一个编程概念,它可以简单理解为将一个多参数函数转换为一系列单参数函数的过程。这样做的好处是可以简化函数调用,尤其是在函数式编程中。为让这个概念更易理解,我们可以从一个简单的例子开始:

1
2
def add(x, y):
    return x + y

在未进行柯里化的情况下,我们这样调用它:

1
result = add(2, 3)  # result 为 5

柯里化后,这个函数 add 会被转换为一系列的单参数函数:

1
2
3
4
def add_curried(x):
    def add_y(y):
        return x + y
    return add_y

调用时,我们可以这样一步一步进行:

1
2
add_2 = add_curried(2)  # add_2 是一个接受一个参数的函数
result = add_2(3)       # result 为 5

或者直接这样调用:

1
result = add_curried(2)(3)  # result 为 5

通过柯里化,我们可以在函数被部分应用时更灵活地处理参数。比如,如果我们知道函数的一个参数,但还不知道另一个参数,我们就可以先固定已知的参数,等到知道另一个参数时再调用。