Memoization
メモ化は関数呼び出しの結果をキャッシュする技法である。同じ引数の再呼び出しはキャッシュ値を直接返し、領域と引き換えに時間を節約する。
目的
繰り返し計算を最適化する。純粋関数に対して安全かつ効率的である。
メカニズム
結果を引数をキーにして格納する。初回の呼び出しは計算してキャッシュし、同じ引数の以降の呼び出しは直接返す。再帰(例:フィボナッチ)を O(2^n) から O(n) に最適化する。キャッシュの正しさには純粋関数が必要である。
ユースケース
- パフォーマンスの最適化
- 再帰の高速化(recursion)
- キャッシング戦略