Python 对于curried operator.add函数,这是正确的实现吗?

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函数相同。

这建议实现一个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
函数相同。唯一的区别是:

  • 您使用了一个
    lambda
    ,而博客帖子使用了
    def
  • 出于某种原因,您使用了
    运算符。添加(a,b)
    而不是简单地使用
    a+b
  • 使用
    plus
    addN
    将得到相同的结果,因此两者都不“正确”

    请注意,您选择的函数命名令人困惑,因为您的
    plus
    函数对应于博客文章中的
    addN
    函数(而不是
    plus
    函数)