Memoização armazena os resultados de uma função em cache, indexados por seus argumentos, de modo que chamadas repetidas com as mesmas entradas retornam o resultado em cache instantaneamente em vez de recalcular. Ela troca memória por velocidade e funciona apenas com funções puras (mesma entrada → mesma saída, sem efeitos colaterais).
Um wrapper memoize genérico
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
