関数型プログラミングの再帰

プログラミングパラダイムの基礎

Eleanor Thomas

Senior Data Analytics Engineer

再帰とは?

  • 再帰関数: 自分自身を呼び出す関数
  • 終了条件(ベースケース)が必要
  • 変更した入力での再帰呼び出しを含む
0 | def my_recursive_function(input_value):
1 |     # base case
2 |     if base_case_condition:
3 |        return base_case_output_value
4 |     # recursive call
5 |     else:
6 |        return my_recursive_function(modified_input_value) + some_modification
プログラミングパラダイムの基礎

なぜ再帰を使うか

  • 再帰で定義すると分かりやすい問題がある
  • フィボナッチ数列:
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
プログラミングパラダイムの基礎

再帰の例(続き)

ファイルシステム

  • ファイルシステムの探索
プログラミングパラダイムの基礎

再帰の例(続き)

ファイルシステム;ソート法

  • ファイルシステムの探索
  • マージソートなどのソートアルゴリズム
プログラミングパラダイムの基礎

再帰の例(続き)

ファイルシステム;ソート法;データ構造

  • ファイルシステムの探索
  • マージソートなどのソートアルゴリズム
  • さまざまなデータ構造は再帰的に定義される
プログラミングパラダイムの基礎

再帰 vs 反復

  • すべての再帰関数は反復でも書ける
  • 反復は再帰呼び出しではなくループを使う
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
プログラミングパラダイムの基礎

演習に進みましょう!

プログラミングパラダイムの基礎

Preparing Video For Download...