¿El siguiente método es puro? Yo diría que sí, ya que de todos modos no cambia la clase actual, por lo tanto, todo lo que ahora podemos "ver" en la clase, antes de ejecutar este método, seguirá siendo exactamente el mismo después. ¿Estoy en lo correcto?Pregunta sobre los métodos [Puros]
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;
}
}
Quizás esté buscando el término * idempotent *? –
Hmmm ... en realidad no. –
Tenga en cuenta que (conceptualmente) es importante tener en cuenta su nivel de abstracción al pensar si una función es pura. De hecho, es puramente objetiva, ya que no cambia el estado de ningún objeto presente (excepto el nuevo), pero no es puramente del sistema: asigna memoria, por lo que cambia el estado del sistema. – Kos