HEX*_*ler 10 python anonymous function
很少我会在python中遇到一些使用匿名函数返回匿名函数的代码......?
不幸的是我手头上找不到一个例子,但它通常采用这样的形式:
g = lambda x,c: x**c lambda c: c+1
Run Code Online (Sandbox Code Playgroud)
为什么有人会这样做?也许你可以给出一个有意义的例子(我不确定我制作的那个是否有意义).
编辑:这是一个例子:
swap = lambda a,x,y:(lambda f=a.__setitem__:(f(x,(a[x],a[y])),
f(y,a[x][0]),f(x,a[x][1])))()
Run Code Online (Sandbox Code Playgroud)
Gre*_*ill 16
您可以使用这样的构造进行currying:
curry = lambda f, a: lambda x: f(a, x)
Run Code Online (Sandbox Code Playgroud)
您可以使用它:
>>> add = lambda x, y: x + y
>>> add5 = curry(add, 5)
>>> add5(3)
8
Run Code Online (Sandbox Code Playgroud)