Nehmen wir an, es fn(x)
handelt sich um eine reine Funktion, die etwas Teuereres bewirkt, beispielsweise die Rückgabe einer Liste der Primfaktoren von x
.
Nehmen wir an, wir erstellen eine auswendig gelernte Version derselben Funktion namens memoizedFn(x)
. Es gibt immer das gleiche Ergebnis für eine bestimmte Eingabe zurück, verwaltet jedoch einen privaten Cache früherer Ergebnisse, um die Leistung zu verbessern.
Formell gilt memoizedFn(x)
als rein?
Oder wird in RP-Diskussionen ein anderer Name oder ein anderer qualifizierender Begriff verwendet, um sich auf eine solche Funktion zu beziehen? (dh eine Funktion mit Nebenwirkungen, die die Komplexität der nachfolgenden Aufrufe beeinflussen, die Rückgabewerte jedoch möglicherweise nicht beeinflussen.)
funcx(){sleep(cached_time--); return 0;}
Gibt jedes Mal den gleichen Wert zurück, führt aber zu einer anderen Leistung