Aşağıdaki yöntem Saf mı? Öyle diyorum ki, şu anki sınıfta değişmediği için, şimdi, bu metodu çalıştırmadan önce sınıfta "görebiliyoruz" diye kestirebileceğimiz her şey, sonradan tam olarak aynı olacaktır. Doğrumuyum? Eğer System.Diagnostics.Contracts den Pure
özniteliği ile etiketlenmiş demek [Pure]
tarafından ise[Pure] yöntemleri hakkında soru
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;
}
}
Belki de * idempotent * terimini mi arıyorsunuz? –
Hmmm ... gerçekten değil. –
Bir fonksiyonun saf olup olmadığını düşünürken, soyutlama düzeyinizi dikkate almak (kavramsal olarak) önemlidir. Bu gerçekten nesnel nesnelliktir, çünkü herhangi bir mevcut nesnenin (yeni olanın dışında) durumunu değiştirmez, fakat sistem açısından tam bir şey değildir - hafızayı ayırır, böylece sistemin durumunu değiştirir. – Kos