Pythonでラムダ関数は自分自身を再帰的に呼び出すことができますか?
2023-09-04 09:57:42
質問
通常の関数は、その定義に自分自身への呼び出しを含むことができ、問題はありません。 私はラムダ関数でそれを行う方法を見つけ出すことができませんが、ラムダ関数は参照するための名前を持っていないという単純な理由です。 どうすればいいのでしょうか? どのように?
どのように解決する?
これを行うために考えられる唯一の方法は、関数に名前を付けることです。
fact = lambda x: 1 if x == 0 else x * fact(x-1)
またはその代わりに、以前のバージョンの python の場合。
fact = lambda x: x == 0 and 1 or x * fact(x-1)
更新 他の回答からのアイデアを使用して、私は階乗関数を1つの無名のラムダに楔を打つことができました。
>>> map(lambda n: (lambda f, *a: f(f, *a))(lambda rec, n: 1 if n == 0 else n*rec(rec, n-1), n), range(10))
[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]
というわけで、可能ではありますが、あまりお勧めはしません!
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] 辞書の値でキーを取得する
-
[解決済み] PythonにMultiline Lambdaはない。なぜダメなのか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでのAWS Lambdaのインポートモジュールエラー
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。