2013-05-31 45 views
3

只是为了好奇。几天前发现了兰姆达斯。我绝对想,如果这样的事情可以做:Lambda lambda

(试戴的解释,但没有我的尝试似乎工作)

p = lambda x: (lambda x: x%2)/2 

有没有明确的目的。我只是没有找到满意的答案。我可能误解了Lambdas。

+1

是的,它可以做到:看这... http://rosettacode.org/wiki/Y_combinator #Python – jamylak

回答

5

你是不是真正调用lambda

p = lambda x: (lambda x: x%2)(x)/2 

但要注意,因为其余的这个例子总是会返回02划分将是要么01和整数除以该结果通过2将导致截取0

+0

Python 2太老派了。 – kirelagin

+0

这个例子只是为了说明这个想法。并且错过了关于必须调用这两个函数的观点。 –

+0

@JuanGallostra啊好吧,只是认为这是值得一提的,否则别人会。无论如何,我推测这个例子是无稽之谈 – jamylak

1

(lambda x: x%2)函数,并且将函数除以2没有任何意义。您可能想要调用它并分割它返回的值。

5

您可以使用内部拉姆达返回另一个函数的基础上,外参数:

mul = lambda x: (lambda y: y * x) 
times4 = mul(4) 
print times4(2)