高度試験午前I暗記無料で始める

再帰と末尾再帰とは?さいきとまつびさいき

再帰と末尾再帰とは、関数が自分自身を呼び出しながら処理を進める手法(再帰)のうち、再帰呼び出しが関数の一番最後の処理になっている形式を「末尾再帰」と呼ぶ。末尾再帰は一部の処理系でループ処理に変換され、呼び出しごとにスタックを積み上げる必要をなくせる。

最終更新:2026-10-07

試験情報

高度試験・午前I(全区分共通)の頻出用語/午前I(全区分共通)

高度試験の午前Iを最短で暗記する →

具体例

階乗計算を「戻ってきてから掛け算する」形で書くと通常の再帰、「途中経過を引数で渡しながら呼び出す」形で書くと末尾再帰になる。末尾再帰最適化に対応した処理系ではスタックオーバーフローを避けやすい。

試験での引っ掛け

「再帰呼び出しが最後に書いてあるか」ではなく「再帰呼び出しの戻り値にさらに演算を加えていないか」が末尾再帰の分岐点。return n * f(n-1) は呼び出しの後に掛け算が残るので末尾再帰ではない。また再帰的(リカーシブ)と再入可能(リエントラント)は別概念で、再帰的に呼べても複数プロセスから同時に呼べるとは限らない。

関連用語

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

高度試験の午前Iを最短で暗記する →

試験での特徴
  • 分野:午前I(全区分共通)
  • 「再帰呼び出しが最後に書いてあるか」ではなく「再帰呼び出しの戻り値にさらに演算を加えていないか」が末尾再帰の分岐点。