Python 避易就难的柯里化

Python 避易就难的柯里化,可以不用PyMonad库的装饰器而手动创建柯里化函数。通过函数定义的形式实现的一种方法如下所示:

def f(x, *args):
    def f1(y, *args):
        def f2(z):
            return (x+y)*z
        if args:
            return f2(*args)
        return f2
    if args:
        return f1(*args)
    return f1

这里将函数

Python 避易就难的柯里化

柯里化为了函数f(x),它会返回一个函数,从概念上讲就是

Python 避易就难的柯里化

然后柯里化中间函数并创建了函数f1(y)f2(z),即

Python 避易就难的柯里化

f(x)函数进行求值会得到一个新函数f1。如果提供了其他参数,则这些参数会传递给f1函数用于求值,其结果可以是一个最终值,也可以是另一个函数。

显然,这种通过手动扩展实现柯里化的做法很容易出错,并不是处理函数的实用方法,但是可以用它来说明柯里化的含义以及它在Python中的实现方式。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程