- 함수를 일반값처럼 다룰 수 있습니다.
- 만들어진 함수는 변수에 저장할 수 있습니다.
- 함수를 인자로 다른 함수에게 전달할 수 있습니다.
- 함수에서 새로운 함수를 만들어서 반환할 수 있습니다.
- 함수형 프로그래밍이 만들어지고 나면 내부의 상태가 절대로 바뀌지 않는 불변의 객체를 사용해 프로그램을 작성합니다.
- side effect가 없습니다.
- 입력이 같으면 항상 같은 출력을 내놓습니다.
- 다른 객체의 상태를 변경하지 않습니다.
- 함수 외부나 바깥 환경과 상호작용하지 않는 순수 함수를 사용합니다.
- 간결합니다.
- 함수형 코드는 그에 대응하는 "명령형 코드"에 비해 간결하고 우아합니다.
- 함수를 값으로 가질 수 있게 되면서 "강력한 추상화"가 가능해집니다.
- Safe multithreading
- 다중 스레드를 사용해도 안전합니다.
- 불변 데이터 구조를 사용하고 순수 함수를 그 데이터 구조에 사용한다면, 다중 스레드 환경에서 같은 데이터를 여러 스레드가 변경할 수 없습니다.
- 테스트가 용의합니다.
- 부수 효과가 있는 함수를 실행할 때는 준비 코드(setup code)가 따로 필요하지만, 순수 함수는 그런 준비 없이 독립적으로 테스트 할 수 있습니다.
'CS > Kotlin' 카테고리의 다른 글
변수와 자료형, 연산자 (0) | 2022.03.17 |
---|---|
[공식문서 + 구글링] 코틀린 let, with, run, apply, also 차이 비교 정리 (0) | 2022.03.04 |