好奇心のためだけに。数日前にラムダを発見しました。私はちょうどそのようなことができるかどうか疑問に思っていました:
(解釈を試みましたが、私の試みはどれもうまくいかなかったようです)
p = lambda x: (lambda x: x%2)/2
明確な目的はありません。満足のいく答えが見つかりませんでした。ラムダを誤解している可能性があります。
外部パラメーターに基づいて、内部ラムダを使用して別の関数を返すことができます。
mul = lambda x: (lambda y: y * x)
times4 = mul(4)
print times4(2)
実際には innerを呼び出していませんlambda
:
p = lambda x: (lambda x: x%2)(x)/2
Python 2 では、この例は常に返されることに注意してください。これは0
、 で割った余りが2
または0
で1
あり、整数で割ると2
が切り捨てられるため0
です。
(lambda x: x%2)
は関数であり、関数を で割って2
も意味がありません。おそらくそれを呼び出して、返された値を割りたいと思うでしょう。