Memoization кеширует результаты функции, индексируя их по её аргументам, поэтому повторные вызовы с теми же входными данными возвращают кешированный результат мгновенно вместо переивычисления. Это обменивает память на скорость и работает только для чистых функций (одинаковый вход → одинаковый выход, без побочных эффектов).
Универсальный обёртка memoize
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
