メモ化(Memoization)は、関数の結果を引数をキーとしてキャッシュし、同じ入力での繰り返し呼び出しでは再計算せずに即座にキャッシュ済みの結果を返します。これはメモリと速度のトレードオフであり、純粋(pure)な関数(同じ入力 → 同じ出力、副作用なし)でのみ機能します。
汎用的な memoize ラッパー
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
