12. 변동을 줄이면서 안정성 높이기
객체/외부 상태의
변동이 있는 부분은
블록 Scope으로
격리한다
13. 잠깐! 이거 함수형 프로그래밍이 맞나요?
Functional Programming is sometimes treated as synonymous with
Purely functional programming.
When a pure function is called with some given arguments,
it will always return the same result,
and cannot be affected by any mutable state or other side effect.
-
Hudak, Paul (Conception, evolution and application of functional programming lauguages)
25. Pure Function and Side Effect
함수 내에서 관장하지 않는,
전역 상태/변수 혹은 (파일, 화면) 입출력등을 포함한
외부 상태에 영향을 줄 수 있고 이를 관찰하는 행위를 포함하는 함수를
Side Effect라 한다.
26. Pure Function and Side Effect
함수형 프로그래밍을 활용하면
코드를 간결하게 작성할 수 있고 기능의 확장이 쉬우며
보다 안전한 코드를 작성할 수 있다
27. Pure Function and Side Effect
순수함수를 사용하면 동일한 결과를 예측할 수 있으므로 (참조 투명성)
함수 그 자체를 모듈화된 기능으로 사용할 수 있다.
또한 외부 가변 상태를 변경하지 않으므로
동시성 프로그래밍에서 공유 자원 변경에 대한 관심사를 제할 수 있다.
이런 이점으로 함수형 프로그래밍에서는 순수 함수의 사용을 지향한다.