함수형 프로그래밍의 신조 중 하나는 순수 함수를 사용하는 것입니다. 순수한 기능은 부작용이 없으며 참조가 투명합니다.
Getter 는 참조 용으로 투명하지 않습니다. Getter 호출간에 Setter를 호출하면 매개 변수가없는 경우에도 Getter의 리턴 값이 변경됩니다 (일반적으로 매개 변수 없음).
세터 는 부작용을 일으 킵니다 -세터를 호출하면 일반적으로 반환 값이 아닌 값을 조작합니다 (사실 전통적으로 세터는 아무것도 반환하지 않습니다)
스칼라에서 우리는 두 가지 패러다임 (함수 및 객체 지향)을 함께 메쉬하고 있다는 사실을 받아들이고 Java와 같은 언어에서와 마찬가지로 getter / setter를 사용합니다.
Haskell과 같은 언어 (유창하지는 않지만 "순수한"기능 언어를 더 잘 알고 있음)에서 Getter가 참조 적으로 투명하고 Setter가되도록 객체의 속성을 모델링하는 방법이 궁금합니다. 부작용은 없습니까?
해결책은 setter가 호출 된 오브젝트의 사본을 setter의 리턴 값으로 전달하고이 사본에 특성 값의 변경 사항이 포함되어 있습니까?