Lambda inside lambda

2020-04-05 08:20发布

Just for curiosity. Discovered Lambdas a few days ago. I was jus wondering if something like that can be done:

(Tried on the interpret but none of my tries seemed to work)

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

There's no explicit purpose. I just did'nt find a satisfactory answer. I may have misunderstood Lambdas.

标签: python lambda
3条回答
地球回转人心会变
2楼-- · 2020-04-05 08:29

(lambda x: x%2) is a function, and dividing a function by 2 doesn't make any sense. You probably want to call it and divide what the value it returned.

查看更多
\"骚年 ilove
3楼-- · 2020-04-05 08:30

You can use an inner lambda to return another function, based on the outer parameters:

mul = lambda x: (lambda y: y * x)
times4 = mul(4)
print times4(2)
查看更多
聊天终结者
4楼-- · 2020-04-05 08:48

You aren't actually calling the inner lambda:

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

Note in Python 2 this example will always return 0 since the remainder from dividing by 2 will be either 0 or 1 and integer-dividing that result by 2 will result in a truncated 0.

查看更多
登录 后发表回答