함수형 프로그래밍의 컨셉
- 변경 가능한 상태를 불변상태(immutable)로 만들어 side-effect를 없애자.
- 모든것은 객체이다. (1급 객체)
- 코드를 간결하게 하고 가독성을 높여 구현할 로직에 집중시키자.
- 동시성 작업을 보다 쉽게 안전하게 구현 하자.
Immutable
SideEffect
First-class citizen (1급 객체)
아래의 3가지 조건을 만족
- 변수나 데이타에 할당 가능
- 객체의 인자로 넘길 수 있어야 함
- 객체의 리턴값으로 사용 가능
JS의 함수는 위의 세가지 조건을 모두 만족하기 때문에 1급 객체.
Higher-order functions (고차함수)
아래의 2가지 중 하나 이상을 만족하는 함수.
- 함수를 파라미터로 전달 받는 함수
- 함수를 리턴하는 함수