Ich habe dieses Zitat gefunden:
- Mache Vorhersagen für reine Funktionen.
Prädikatsreinheit: Ein Prädikat ist ein Funktionsobjekt, das eine Ja / Nein-Antwort zurückgibt, typischerweise als bool -Wert. Eine Funktion ist rein in der mathematische Sinn, wenn seine Ergebnisse nur von seinen Argumenten abhängen (Beachten Sie, dass diese Verwendung von "pure" nichts mit pure virtual zu tun hat Funktionen).
Lassen Sie keine Vergleichselemente den Status beibehalten oder auf sie zugreifen, die sich auf das Ergebnis auswirken ihres operators () , einschließlich Member- und Global-Status. Lieber operator () eine const Elementfunktion für Prädikat (siehe Punkt 15).
Was ist eine pure Funktion , auf die in dieser Aussage Bezug genommen wird, und kann jemand Beispiele geben? Vielen Dank im Voraus.
Dies ist eine reine Funktion:
%Vor%Das Ergebnis des Aufrufs hängt nur von seinem Argument ab.
Dies ist keine reine Funktion:
%Vor%Der zurückgegebene Wert hängt von anderen Dingen als dem Parameter ab.
Funktion ist rein wenn:
Die Funktion kann also immer noch einen Zustand haben, aber sie sollte nicht beobachtbar sein. Zum Beispiel:
%Vor%Funktion foo hat einen Zustand (statischer Vektor), ist aber nicht semantisch beobachtbar, also rein. Es ist eine dumme Funktion, aber es sollte den Punkt zeigen.