Memoization välimuistiin funktion tulokset avaimilla perustuen sen argumentteihin, joten toistuvat kutsut samoilla syötteillä palauttavat välimuistissa olevan tuloksen heti sen sijaan, että ne laskisivat uudelleen. Se vaihtaa muistia nopeudeksi ja toimii vain puhtaille funktioille (sama syöte → sama tulos, ei sivuvaikutuksia).
Yleinen memoize-kääre
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
