这是一个curried operator.add函数的正确实现吗?

can*_*dry -1 python functional-programming

这篇博文提出了一个curried附加函数的实现:

def addN(n):
    return lambda x: x + n

def plus(a, b):
    addA=addN(a)
    return addA(b)
Run Code Online (Sandbox Code Playgroud)

我相信我的版本更正确,因为它一直使用一元函数.

from operator import add
plus = lambda a: lambda b: add(a, b) 
plus(1)(2)
Run Code Online (Sandbox Code Playgroud)

你怎么看 ?

int*_*jay 5

您的plus功能与addN博客文章中的功能相同.唯一的区别是:

  1. 你使用了lambda博客文章使用的地方def.
  2. 出于某种原因,你使用operator.add(a,b)而不是简单a+b.

使用plusaddN将给出相同的结果,因此没有一个更"正确".

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