**메모이제이션(memoization)**은 함수의 결과를 인수를 키로 하여 캐싱하므로, 같은 입력으로 반복 호출하면 다시 계산하는 대신 캐시된 결과를 즉시 반환합니다. 메모리를 속도와 맞바꾸는 것이며, 순수(pure) 함수에만 동작합니다(같은 입력 → 같은 출력, 부수 효과 없음).
범용 memoize 래퍼
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
