Memoizace ukládá výsledky funkce do mezipaměti s klíčem odpovídajícím jejím argumentům, takže opakované volání se stejnými vstupy okamžitě vrátí výsledek z mezipaměti místo opakovaného výpočtu. Obchoduje paměť za rychlost a funguje pouze u čistých funkcí (stejný vstup → stejný výstup, bez vedlejších účinků).
Obecný memoizační wrapper
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
