Python 对于curried operator.add函数,这是正确的实现吗?
这建议实现一个curried addition函数:Python 对于curried operator.add函数,这是正确的实现吗?,python,functional-programming,Python,Functional Programming,这建议实现一个curried addition函数: def addN(n): return lambda x: x + n def plus(a, b): addA=addN(a) return addA(b) 我相信我的版本更正确,因为它一直使用一元函数 from operator import add plus = lambda a: lambda b: add(a, b) plus(1)(2) 你觉得怎么样?你的plus函数与博客文章中的addN函数相同。
def addN(n):
return lambda x: x + n
def plus(a, b):
addA=addN(a)
return addA(b)
我相信我的版本更正确,因为它一直使用一元函数
from operator import add
plus = lambda a: lambda b: add(a, b)
plus(1)(2)
你觉得怎么样?你的
plus
函数与博客文章中的addN
函数相同。唯一的区别是:
lambda
,而博客帖子使用了def
运算符。添加(a,b)
而不是简单地使用a+b
plus
和addN
将得到相同的结果,因此两者都不“正确”
请注意,您选择的函数命名令人困惑,因为您的plus
函数对应于博客文章中的addN
函数(而不是plus
函数)