함수형 프로그래밍은 불변성, 순수함수와 같은 특징을 지닌다. 이런 특징들은 코드 가독성과 예측 가능성을 높여주고, 테스트 코드 작성에 용이하다는 장점이 있다. 또, 이런 특징들은 코드의 부작용이 적고 상태 변이가 없기 때문에 병렬 및 동시성 프로그래밍을 작성할 때 사용하는것이 적절하다.
처음에는 학습에 곡선이 있을 수 있어 러닝 커브가 발생 할 수 있고, 함수형 프로그래밍의 경우 for loop 대신 재귀 함수를 사용하기 때문에 직관적이지 않으며 무한 루프에 빠져 스택 오버플로우가 발생 할 가능성도 있다. 또, 불변성의 특징 때문에 값을 변경하지 않고 새로운 값을 생성하여 사용하기 때문에 메모리 문제가 발생할 수 있다.
위에 나열했던 장점들을 객체지향 프로그래밍에 적용하면 된다. 불변성 개념을 적용해서 객체의 상태 변경을 피하고, 순수 함수를 통해 코드의 예측 가능성과 테스트 용이성을 올려준다. 그리고 고차 함수와 함수 합성을 도입 하여, 작은 함수들을 조합하여 큰 기능을 만들도록 한다. 그렇게 되면 코드의 가독성과 재사용성이 올라갈 수 있다.