# Γράψτε κώδικα για τη λειτουργία cache. Είναι ένας διακοσμητής που
# πρέπει να θυμάται τι επέστρεψε η διακοσμημένη λειτουργία και να
# επιστρέφει την αποθηκευμένη τιμή σε επαναλαμβανόμενες κλήσεις με τα ίδια
# επιχειρήματα.
#
# Μπορεί να υποτεθεί ότι όλα τα επιχειρήματα είναι hashable.
# Χρησιμοποιήστε μόνο τη βασική βιβλιοθήκη Python.
def cache(func):
raise NotImplementedError
calls = {"count": 0}
@cache
def add(a, b):
calls["count"] += 1
return a + b
assert add(1, 2) == 3
assert calls["count"] == 1
assert add(1, 2) == 3
assert calls["count"] == 1
assert add(2, 3) == 5
assert calls["count"] == 2
print("OK")