Memoization kešuoja funkcijos rezultatus, rakinti jos argumentais, todėl kartotiniai skambučiai su tais pačiais įvestimis grąžina talpintą rezultatą akimirksniu, o ne iš naujo skaičiuoja. Tai keičiasi atmintimi greitumą ir veikia tik grynoms funkcijoms (tas pats įvestis → tas pats rezultatas, jokių šalutinių efektų).
Bendrasis memoize apvija
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
