La memoización almacena en caché los resultados de una función indexados por sus argumentos, de modo que las llamadas repetidas con las mismas entradas devuelven el resultado cacheado al instante en lugar de recalcularlo. Intercambia memoria por velocidad y solo funciona para funciones puras (misma entrada → misma salida, sin efectos secundarios).
Un wrapper genérico de memoize
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
