Memoizarea cachează rezultatele unei funcții indexate după argumentele sale, astfel încât apelurile repetate cu aceleași intrări returnează rezultatul din cache instantaneu în loc să recalculeze. Ea face un schimb între memorie și viteză și funcționează doar pentru funcții pure (aceeași intrare → aceeași ieșire, fără efecte secundare).
Un wrapper generic memoize
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
