Υλοποιήστε μια λειτουργία μνήμης (cache) που αποθηκεύει το αποτέλεσμα μιας λειτουργίας σε επαναλαμβανόμενες κλήσεις με τα ίδια επιχειρήματα, συμπεριλαμβανομένης της διαχείρισης primitives και undefined, καθώς και τη δυνατότητα καθαρισμού της cache (clearCache).