Является ли следующий метод Pure? Я бы так сказал, так как он никоим образом не изменился в текущем классе, поэтому все, что мы можем теперь "видеть" в классе, до запуска этого метода по-прежнему будет точно таким же. Правильно ли я?
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;
}
}