IT用語: 再帰処理(Recursion)とは|関数が自分自身を呼び出す仕組み
再帰処理の概念・ベースケースの重要性・階乗計算やツリー探索での活用例を解説。
再帰処理とは
再帰処理は、関数が自分自身を呼び出すことで問題を解く手法です。「大きな問題を同じ構造の小さな問題に分割する」というアプローチで、ツリー構造の探索・ファイルシステムの走査・フィボナッチ数列等の計算に自然に表現できます。
必ず「終了条件(ベースケース)」が必要
function factorial(n) {
if (n <= 1) return 1; // ベースケース: ここで止まる
return n * factorial(n - 1); // 再帰呼び出し
}
factorial(5); // → 120 (5×4×3×2×1)
ベースケースがないと無限に自分を呼び出し「スタックオーバーフロー」エラーで止まります。
再帰 vs ループ
理論上、再帰で書けるものはループでも書けます。ループの方がメモリ効率は良いですが、ツリー構造やグラフの探索では再帰の方が直感的に書けます。深いネストがある場合は「末尾再帰最適化」や「メモ化(Memoization)」でパフォーマンスを改善できます。
関連する用語 (プログラミング)
全33件を見るIT用語: SOLID原則とは|オブジェクト指向設計の5つの基本原則
保守性の高いソフトウェア設計のためのSOLID原則(単一責任・開放閉鎖・リスコフ置換・インターフェース分離・依存性逆転)を解説。
Jest(ジェスト)
MetaがReact向けに開発したJavaScript/TypeScriptのテストフレームワーク。ゼロ設定で動作・スナップショットテスト・モック機能を標準搭載し、フロントエンドテストのデファクトスタンダード。
TypeScript (TS)
JavaScriptの弱点(エラーの起きやすさ)を克服するためにMicrosoftが開発した、「型(ルール)」を持つ進化版言語。
WebAssembly(Wasm)
ブラウザ上でネイティブに近い速度で実行できるバイナリ命令形式。C・C++・Rustなどのコードをブラウザで動かすことができ、ゲーム・動画編集・CADなど計算負荷の高いWebアプリに使われる。
JAMstack
JavaScript・APIs・Markupの頭文字をとったWebアーキテクチャ。ビルド時に静的HTMLを生成し、動的機能はAPIで補完することで高速・安全・スケーラブルなWebサイトを実現する。
IT用語: ソフトウェアテストの種類|単体・結合・E2Eテストの違い
ユニットテスト・結合テスト・E2Eテストの役割とテストピラミッドの考え方を解説。