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中的实现方式。

版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com

目录[+]

取消
微信二维码
微信二维码
支付宝二维码