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
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
.
(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.
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)