下面的输出是什么?
(lambda x:x(lambda x:x))(lambda x:x))(lambda x:x)(lambda x:x+x)(3)
运行它会给出6。我对lambda表达式的工作原理有一些了解,但这对我来说有点太极端了。
发布于 2022-11-25 16:28:30
这在考试中太烦人了。但是无论如何,前4个lambdas都是针对给定的输入(x),返回那个输入(x)。然后,最后一个命令是返回x+x (或2x)。因此,对于任何给定的输入,您都会得到它的返回。但要努力做到:
“”“
(lambda x:x((lambda x:x(lambda x:x))(x(x))))(lambda x:x)(lambda x:x+x)(3)
(lambda x:x((lambda x:x(lambda (x(x)):x))))(lambda x:x)(lambda x:x+x)(3)
(lambda x:x((lambda x:x(x))))(lambda x:x)(lambda x:x+x)(3)
(lambda x:x(x(x)))(lambda x:x)(lambda x:x+x)(3)
(lambda x:x(x))(lambda x:x)(lambda x:x+x)(3)
x(lambda x:x)(lambda x:x+x)(3)
x(x)(lambda x:x+x)(3)
x((lambda x:x+x)(3))
x(3+3)
3+3
6“”“
https://stackoverflow.com/questions/74575338
复制相似问题