末尾再帰にいたるまで

末尾再帰(tail recursion)は意識しないとそうならない。

  • 再帰の中には末尾再帰に変換できないものも当然ある
  • たいがい再帰関数で途中結果を持ちあるくようにすれば末尾再帰にできる
    • ただ、これを無理やりやると結局スタックを持ち歩いているのと違わなくなる
  • 末尾再帰のものはループに変換できる
    • スタックを一定数しか消費しない。