Memoization speichert die Ergebnisse einer Funktion in einem Cache mit Schlüsseln basierend auf ihren Argumenten, sodass wiederholte Aufrufe mit denselben Eingaben das gecachte Ergebnis sofort zurückgeben anstatt neu zu berechnen. Sie tauscht Speicher gegen Geschwindigkeit aus und funktioniert nur für reine Funktionen (gleiche Eingabe → gleiche Ausgabe, keine Nebenwirkungen).
Ein generischer memoize-Wrapper
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
