순수 함수의 조건은 다음과 같다.
- 입력값에 대해서 반드시 결과값이 있어야한다.(입력 값 1! 결과 값 1)
- 외부 변수의 개입이 없어야 한다.
순수 함수의 장점은 외부 변수의 개입이 없기 때문에 캐싱을 할 수 있다는 장점이 있다. 입력에 대해서 항상 같은 결과를 보장해주고 이를 저장해 둘 수 있는 것을 의미한다.
이를 통해서 효율성이 증대되는 것이다
함수지향의 또 다른 핵심은 지연실행을 함수 있다는 것이다.
자바에서 stream(동시성), (RxJava, RxSwift은 집계함수가 호출되어야만 데이터가 흘러서 실행이 된다.
이를 통해 지연실행 된다는 것을 알 수 있다.
동시성을 사용할 수 있다.