Ist die folgende Methode rein? Ich würde es so sagen, da sich die aktuelle Klasse sowieso nicht ändert, also kann alles, was wir jetzt in der Klasse "sehen" können, bevor diese Methode ausgeführt wird, immer noch genauso sein. Hab ich recht?Frage über [Pure] Methoden
class Set {
...
public ISet<T> UnionWith(ISet<T> set) {
ISet<T> unionSet = ...
foreach (Element element in this) {
unionSet.Add(element);
}
foreach (Element element in set) {
unionSet.Add(element);
}
return unionSet;
}
}
Vielleicht suchen Sie den Begriff * idempotent *? –
Hmmm ... nicht wirklich. –
Beachten Sie, dass (konzeptionell) es wichtig ist, Ihre Abstraktionsebene zu berücksichtigen, wenn Sie denken, dass eine Funktion rein ist. Es ist in der Tat rein objektbezogen, weil es den Zustand eines vorhandenen Objekts (außer dem neuen) nicht ändert, aber es ist nicht rein systemweise - es weist Speicher zu, so dass es den Zustand des Systems ändert. – Kos