Memoization აკეშინებს ფუნქციის შედეგებს მისი არგუმენტებით გასაღებული, ამიტომ განმეორებული ზარები ერთი და იგივე შეყვანილობით დაბრუნებენ დაკეშინებულ შედეგს დაუყოვნებლივ ხელახალი გამოთვლის ნაცვლად. ის ვაჭრობას მეხსიერება სიჩქარის გამოცხადებაზე და მხოლოდ чисти ფუნქციებისთვის მუშაობს (ერთი შეყვანილობა → ერთი შედეგი, გვერდითი ეფექტების გარეშე).
განზოგადებული memoize wrapper
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
