(TIL) 20221214/ 함수형 프로그래밍에서의 순수 함수
2022. 12. 15. 02:44ㆍTIL(Today I learned)
반응형
🏴Facts(한 것) & Findings(배운 것)
* <자바에서 코틀린으로> 스터디 진행
많은 부분이 인상 깊었지만 기존에도 관심이 많았던 순수 함수에 대한 새로운 지식을 얻어 공유하려 합니다.
이전에 이런 글을 적은 적이 있는데, 위 글에서도 순수 함수에 대한 언급이 있습니다.
순수 함수는 "인자에만 의존하고 부수 효과가 없는 함수이다."라고 명시되어 있다.
그럼 이런 함수는 어떨까?
println("Hello Kotlin")
이 함수는 순수함수일까??
(순수 함수가 아니기 때문에 가져온 예시이다. 그리고 print자체는 동작이기 때문에 부수효과 그 자체다.)
그런 이유는 여러가지입니다.
1. print문은 외부 환경의 영향을 받는다.
당장 println에서 ln은 개행을 의미하는데, 윈도우와 리눅스 계열에서 둘은 다르게 작동합니다.
즉, 외부의 영향을 받습니다.
2. print문을 실행한다고 다 print가 성공하지 않는다.
시스템 에러가 발생할 수도 있고, 컴퓨터가 부서질 수도 있으며, 심지어 핵 폭발이 일어날지도 모른다.
이러한 이유에서 print문은 순수함수가 아닙니다.
순수함수는 InMemory상에서만 작동해야하는 함수로, I/O를 거치는 순간 순수함수가 아니게 됩니다.
그리고 항상, 언제나, 같은 인자가 들어왔을 때 같은 값을 반환해야합니다.
* 29CM 과제전형
며칠전에 지원한 29CM 서류 전형을 통과해서 과제전형을 시작했습니다.
Gradle자바로 작성하고 있는데, 내일 스프링으로 옮겨갈 생각입니다.
try-catch로 에러처리하다가는 개발이 아니라 오류핸들링이 될거 같아요.
반응형
'TIL(Today I learned)' 카테고리의 다른 글
(TIL) 20220105 / 대규모 서비스를 지탱하는 기술 (0) | 2023.01.06 |
---|---|
(TIL) 20221231/ 22년 마지막 TIL (0) | 2022.12.31 |
(TIL) 20221213/ 코틀린의 Collection (0) | 2022.12.14 |
(TIL) 20221102, 테이블 연관관계의 역정규화 (0) | 2022.11.03 |
(TIL) 20221027/ 책임에 따른 분리 (1) | 2022.10.27 |