Memoization egy függvény eredményeit az argumentumaik szerint tárcsapolja meg, így az ugyanazokkal a bemenetekkel ismételt hívások azonnal a gyorsítótárazott eredményt adják vissza az újraszámítás helyett. Memóriát cserél a sebességért és csak tiszta függvények esetében működik (ugyanaz a bemenet → ugyanaz a kimenet, nincs mellékhatás).
Egy általános memoize wrapper
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
