Memoization met en cache les résultats d'une fonction indexés par ses arguments, de sorte que les appels répétés avec les mêmes entrées retournent immédiatement le résultat en cache au lieu de recalculer. Elle échange de la mémoire contre de la vitesse et ne fonctionne que pour les fonctions pures (même entrée → même sortie, pas d'effets secondaires).
Un wrapper memoize générique
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
