【发布时间】:2018-02-11 08:13:50
【问题描述】:
这是来自在线试卷,但没有有效的解决方案。我很难理解为什么以及如何从这段代码中得到 32 的答案,比如解析括号的优先级如何。在卡住之前,我个人将以下打印表达式解析为 foo(bar)(8),因为 foo 应该将第一个参数最好作为一个值,并将 lambda 中的第二个参数作为一个函数,在这种情况下,bar 和 8 位于不同的地方。
def bar(x):
return lambda y: x(x(y))
def foo(y):
return lambda x: x(y)
print((foo(bar)(bar)(lambda x:x*2)(2)))
我将不胜感激详细的答案或任何可以为解决此类 lambdas 奠定基础的网站。我自己学习这个,我对这个主题并没有很好的理解。谢谢。
【问题讨论】: