ラムダ関数について簡単な質問があります。私は、すべての反復が前の反復からのラムダ関数に基づいて新しいラムダ関数を定義するループを実行したい。Pythonで関数を再帰的に定義する
f = lambda x: x**2
j=0
J=2
while j<J:
f2 = lambda x: 0.5*f(x)
f = f2
j+=1
Iは、Fの結果は、(3)2.25 = 0.5 * 0.5 * 3 ** 2であることを期待します。しかし、私は次のエラーが表示されます:
このようにラムダ関数を柔軟に使用できると思いました。私はこれを適切に行う方法の有名な方法があると思いますか?したがって、無限再帰、それはラムダ自体を指し、その時点で - あなたのラムダ内部
'lambda'ではなく' def'を使ってこれを行う方法もありますか? – splinter
もちろん、デフォルトのパラメータを使用した同じトリックも、通常の関数と同様に機能します。ラムダは実際に新しい機能をPythonに追加しないことを覚えておいてください。本当に単純な関数を定義するための簡単な方法です。 – jasonharper