NDC2017 2017. 5. 18. 14:11

더 좋은 코드를 위한 함수형 프로그래밍

순수함수와 불변성

순수함수 : 함수의 겨로가값이 오직 입력 인자 값들에 의해서만 결정.
- 특정 입력값에 대해서 결과값이 결정적으로 대응되는 함수
- 부작용이 없는 함수.

부작용 : 상태에 영향을 받거나 변화를 주는 모든 동작
 -화면 출력
 -소켓통신
 -디스크 I/O
 -예외 catch

참조 투명성
-> 어떤 표현식을 그 표현식의 결과값으로 교체해도 전체 프로그램의 실행결과에 영향을 주지 않는 성질
-> 컴파일러에게 다양한 최적화 기회를 제공

기억 - memoization
- 입력값 / 함수명을 알면 결과값은 항상 같음
지연 연산 - Lazy evaluation
- 실제로 결과값이 필요할 때만 함수를 평가
불변성


위 사진은 ranges다.




posted by 천마서생
: