Phương pháp sau có phải là Pure? Tôi sẽ nói như vậy, vì nó không thay đổi trong lớp học hiện tại, do đó, tất cả mọi thứ chúng ta bây giờ có thể "nhìn thấy" trong lớp, trước khi chạy phương pháp này sẽ vẫn chính xác như sau. Tôi có đúng không?Câu hỏi về phương pháp [Tinh khiết]
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;
}
}
Có lẽ bạn đang tìm cụm từ * idempotent *? –
Hmmm ... không thực sự. –
Lưu ý rằng (khái niệm) điều quan trọng là phải xem xét mức độ trừu tượng của bạn khi suy nghĩ nếu một hàm là thuần khiết. Nó thực sự thuần khiết đối tượng, bởi vì nó không thay đổi trạng thái của bất kỳ đối tượng hiện tại nào (trừ cái mới), nhưng nó không thuần khiết hệ thống - nó phân bổ bộ nhớ, vì vậy nó thay đổi trạng thái của hệ thống. – Kos