Memoization keširuje rezultate funkcije po njenim argumentima, tako da ponovljeni pozivi s istim ulazima odmah vraćaju keširani rezultat umjesto ponovnog računanja. Traži memoriju za brzinu i funkcionira samo za čiste funkcije (isti ulaz → isti izlaz, bez nuspojava).
Generički memoize wrapper
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
