코드 재사용은 어렵기로 악명이 높다. 어떤 사람들은 재사용이 과대평가되었다고 생각하기도 한다4. 하지만 나는 마테오 바카리(Matteo Vaccari)의 많은 의견에 동의하면서도, 코드 재사용이 제대로 이루어지면 더 효율적일 수 있다고 생각한다.
‘모든 기능을 포함하는 거대한 프레임워크를 만들고 어디서나 사용하자.’는 식의 재사용을 말하는 것이 아니다. 사실 나는 그 반대를 주장한다. 즉, 단순하고 잘 정의된 함수들을 작성해 아무런 제약 없이 재사용할 수 있게 하자는 것이다. 함수형 프로그래밍은 순수 함수와 불변 타입에 중점을 둬서 이를 훨씬 쉽게 만들어준다.
객체 지향 언어는 재사용성이 떨어지지만 함수형 언어에서는 그렇지 않다고 생각한다. 객체 지향 언어의 재사용성이 떨어지는 이유는 객체 지향 언어가 암시적 환경을 함께 가지고 다니기 때문이다. 이는 마치 바나나를 원했지만 바나나를 들고 있는 고릴라와 그 고릴라가 사는 정글 전체를 얻은 것과 같다.
— 조 암스트롱(얼랭(Erlang) 언어의 창시자)
작성하기 쉽고, 읽기 쉽고, 재사용하기 쉬운 코드라는 점은 아마도 함수형 프로그래밍으로 얻을 수 있는 주된 생산성 향상 요소일 것이다.