Memoization memorizza nella cache i risultati di una funzione con chiave basata sui suoi argomenti, quindi le chiamate ripetute con gli stessi input restituiscono istantaneamente il risultato in cache invece di ricalcolare. Scambia memoria per velocità e funziona solo per funzioni pure (stesso input → stesso output, nessun effetto collaterale).
Un wrapper memoize generico
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
