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
这里将函数
柯里化为了函数f(x),它会返回一个函数,从概念上讲就是
然后柯里化中间函数并创建了函数f1(y)和f2(z),即
对f(x)函数进行求值会得到一个新函数f1。如果提供了其他参数,则这些参数会传递给f1函数用于求值,其结果可以是一个最终值,也可以是另一个函数。
显然,这种通过手动扩展实现柯里化的做法很容易出错,并不是处理函数的实用方法,但是可以用它来说明柯里化的含义以及它在Python中的实现方式。
版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com