Memoization αποθηκεύει τα αποτελέσματα μιας συνάρτησης σε κρυφή μνήμη με κλειδιά βάσει των ορισμάτων της, έτσι ώστε οι επαναλαμβανόμενες κλήσεις με τις ίδιες εισόδους να επιστρέφουν αμέσως το αποθηκευμένο αποτέλεσμα αντί να υπολογίζουν ξανά. Αυτή ανταλλάσσει μνήμη για ταχύτητα και λειτουργεί μόνο για καθαρές συναρτήσεις (ίδια είσοδος → ίδια έξοδος, χωρίς παρενέργειες).
Ένας γενικός περιτύλιγμα memoize
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
