Memoizacija shranjuje rezultate funkcije v predpomnilnik, indeksirane po njenih argumentih, tako da ponovljeni klici z enakimi vhodi vrnejo rezultat iz predpomnilnika takoj, namesto da bi ga ponovno izračunali. Zamenja pomnilnik za hitrost in deluje samo za čiste funkcije (isti vhod → isti izhod, brez stranskih učinkov).
Generični memoize wrapper
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
