ラムダ関数はそれ自体をPythonで再帰的に呼び出すことができますか?

dsimard:

通常の関数の定義には、それ自体への呼び出しを含めることができます。問題はありません。ラムダ関数に参照する名前がないという単純な理由で、ラムダ関数でそれを行う方法を理解できません。それを行う方法はありますか?どうやって?

グレッグ・ヒューギル:

これを行うには、関数に名前を付けるしかありません。

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)

更新:他の答えからのアイデアを使用して、階乗関数を単一の名前のないラムダに割り込むことができました:

>>> 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]

可能ですが、実際にはお勧めできません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ラムダ関数がそれ自体を再帰的に呼び出すのを防ぐにはどうすればよいですか?

分類Dev

匿名のgo関数はそれ自体を呼び出すことができますか?

分類Dev

関数は、その定義内で異なるパラメーターを使用してそれ自体を呼び出すことができますか?

分類Dev

関数がそれ自体を呼び出すことができるのはどうしてですか?

分類Dev

インオーダートラバーサルがそれ自体を2回再帰的に呼び出す場合、AVLツリーはどのようにしてO(log n)の複雑さを持つことができますか?それでO(2 ^ n)になりませんか?

分類Dev

jqueryで関数を再帰的に呼び出すことができないのはなぜですか?

分類Dev

jqueryで関数を再帰的に呼び出すことができないのはなぜですか?

分類Dev

再帰関数で、関数が呼び出す回数をどのように制御しますか。つまり、再帰関数がそれ自体を呼び出す回数

分類Dev

COBOLでは、段落を再帰的に呼び出すことはできますか?

分類Dev

関数型js-独自の関数を再帰的に呼び出すことはできません

分類Dev

静的メソッドはJavaでそれ自体を呼び出すことができますか?

分類Dev

この再帰関数を修正して、呼び出しが深くならないようにすることはできますか?

分類Dev

Androidアクティビティはそれ自体を呼び出すことができますか?

分類Dev

C#コンストラクターはそれ自体を呼び出すことができません

分類Dev

再帰関数は、定数をパラメーターとして送信せずに、最初に呼び出された関数の定数を知ることができますか?

分類Dev

bash関数がローカル変数を使用せずに自分自身を再帰的に呼び出すことができるのはなぜですか?

分類Dev

このjavascript関数でそれ自体を呼び出すにはどうすればよいですか?

分類Dev

10進数を16進数に変換することになっているこのPythonプログラムで再帰関数を呼び出すにはどうすればよいですか?

分類Dev

ラムダ関数のIAMロールは、それ自体を呼び出すためにIAM権限を必要としますか?

分類Dev

ラムダ関数のIAMロールは、それ自体を呼び出すためにIAM権限を必要としますか?

分類Dev

匿名関数はそれ自体を返すことができますか?

分類Dev

ランダム関数Javascriptを呼び出しますが、同じ関数を2回呼び出すことはできません

分類Dev

スタックをオーバーフローさせることなく、非同期関数を再帰的に呼び出すことはできますか?

分類Dev

ラムダ呼び出しを使用してパスパラメーターを別のラムダ関数に渡すことはできますか?

分類Dev

「Clang-Tidy:関数は再帰的な呼び出しチェーン内にあります」とは何ですか?それを修正する方法は?

分類Dev

後で呼び出すことができるように関数を渡すことはできますか?

分類Dev

関数がエラー処理でそれ自体を呼び出すのはpythonicですか?

分類Dev

再帰は何回呼び出すことができますか?

分類Dev

関数呼び出しを返すことと、再帰中に関数を再度呼び出すことだけの違いは何ですか?

Related 関連記事

  1. 1

    ラムダ関数がそれ自体を再帰的に呼び出すのを防ぐにはどうすればよいですか?

  2. 2

    匿名のgo関数はそれ自体を呼び出すことができますか?

  3. 3

    関数は、その定義内で異なるパラメーターを使用してそれ自体を呼び出すことができますか?

  4. 4

    関数がそれ自体を呼び出すことができるのはどうしてですか?

  5. 5

    インオーダートラバーサルがそれ自体を2回再帰的に呼び出す場合、AVLツリーはどのようにしてO(log n)の複雑さを持つことができますか?それでO(2 ^ n)になりませんか?

  6. 6

    jqueryで関数を再帰的に呼び出すことができないのはなぜですか?

  7. 7

    jqueryで関数を再帰的に呼び出すことができないのはなぜですか?

  8. 8

    再帰関数で、関数が呼び出す回数をどのように制御しますか。つまり、再帰関数がそれ自体を呼び出す回数

  9. 9

    COBOLでは、段落を再帰的に呼び出すことはできますか?

  10. 10

    関数型js-独自の関数を再帰的に呼び出すことはできません

  11. 11

    静的メソッドはJavaでそれ自体を呼び出すことができますか?

  12. 12

    この再帰関数を修正して、呼び出しが深くならないようにすることはできますか?

  13. 13

    Androidアクティビティはそれ自体を呼び出すことができますか?

  14. 14

    C#コンストラクターはそれ自体を呼び出すことができません

  15. 15

    再帰関数は、定数をパラメーターとして送信せずに、最初に呼び出された関数の定数を知ることができますか?

  16. 16

    bash関数がローカル変数を使用せずに自分自身を再帰的に呼び出すことができるのはなぜですか?

  17. 17

    このjavascript関数でそれ自体を呼び出すにはどうすればよいですか?

  18. 18

    10進数を16進数に変換することになっているこのPythonプログラムで再帰関数を呼び出すにはどうすればよいですか?

  19. 19

    ラムダ関数のIAMロールは、それ自体を呼び出すためにIAM権限を必要としますか?

  20. 20

    ラムダ関数のIAMロールは、それ自体を呼び出すためにIAM権限を必要としますか?

  21. 21

    匿名関数はそれ自体を返すことができますか?

  22. 22

    ランダム関数Javascriptを呼び出しますが、同じ関数を2回呼び出すことはできません

  23. 23

    スタックをオーバーフローさせることなく、非同期関数を再帰的に呼び出すことはできますか?

  24. 24

    ラムダ呼び出しを使用してパスパラメーターを別のラムダ関数に渡すことはできますか?

  25. 25

    「Clang-Tidy:関数は再帰的な呼び出しチェーン内にあります」とは何ですか?それを修正する方法は?

  26. 26

    後で呼び出すことができるように関数を渡すことはできますか?

  27. 27

    関数がエラー処理でそれ自体を呼び出すのはpythonicですか?

  28. 28

    再帰は何回呼び出すことができますか?

  29. 29

    関数呼び出しを返すことと、再帰中に関数を再度呼び出すことだけの違いは何ですか?

ホットタグ

アーカイブ