Memoizacja buforuje wyniki funkcji indeksowane jej argumentami, więc powtórzone wywołania z tymi samymi danymi wejściowymi zwracają wynik z bufora natychmiast zamiast przeliczać go od nowa. Wymienia pamięć na szybkość i działa tylko dla funkcji czystych (ten sam argument → ten sam wynik, bez efektów ubocznych).
Generyczne opakowanie memoize
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
