Fonksiyonel Programlamanın ilkelerinden biri Saf Fonksiyonların kullanılmasıdır. Saf işlev, yan etkisi olmayan ve referans olarak saydam olan bir işlevdir.
Harfler referans olarak saydam değildir - Alıcıya yapılan çağrılar arasında bir Setter çağrılırsa, parametreleri olmasa bile Getter'in dönüş değeri değişir (genellikle parametre yoktur)
Setters yan etkiler üretmek - Bir Setter tipik olarak dönüş değeri olmayan bir değer işleyen çağrılması (aslında, geleneksel olarak ayarlayıcı döner bir şey)
Scala'da iki paradigmayı bir araya getirdiğimizi (işlevsel ve nesne yönelimli) kabul ediyoruz ve Java gibi bir dilde yaptığımız gibi getters / setters kullanıyoruz.
Haskell gibi bir dilde (akıcı değilim, ama "Saf" işlevsel bir dile daha doğru tutulduğu söylendi) Sadece merak ediyorum, Getters'ın referans olarak saydam ve Setters gibi nesneler üzerindeki özellikleri nasıl modelleyeceğinizi merak ediyorum yan etkisi yoktur?
Çözüm, ayarlayıcının döndürülen değerin ayarlayıcı dönüş değeri olarak çağrıldığı nesnenin bir kopyasını geri vermek mi ve bu kopya özellik değerinde değişiklik içeriyor mu?