“비밀 재료 같은 건 없어.”
– 쿵푸팬더
객체 지향이나 절차 지향 스타일에 익숙한 프로그래머에게 함수형 프로그래밍을 배우는 일이란 뇌를 다시 배선하는 것과 같다. 매우 어려운 작업이지만 그 보상은 매우 크다. 더 적은 노력으로 더 나은 코드를 작성할 수 있기 때문이다.
하지만 겁먹지 않길 바란다! 내가 어렸을 때, 할머니께서 종이접기를 가르쳐주셨다. 그것은 마치 마법 같았다. 가위나 풀 없이 종이 한 장으로 그렇게 아름다운 학을 만들 수 있다는 것이 믿기지 않았다. 하지만 일단 배우고 나면, 종이접기는 그렇게 어렵지 않다.
함수형 프로그래밍은 종이접기와 같다. 처음에는 평범한 것부터 시작하고 변형을 거듭해서 원하는 모양을 만들어간다. 심지어 ‘접기(fold)’라는 연산도 있다!
시작하기 전에, 왜 함수형 프로그래밍을 배우고 싶은지 자신에게 물어봐야 한다. 단순히 일시적인 유행이나 호기심 때문인가? 호기심에는 아무런 잘못이 없다. 호기심 자체만으로도 새로운 것을 배우는 충분한 이유가 되지만, 나는 함수형 프로그래밍이 그 이상이라고 생각한다. 함수형 패러다임을 코딩 방식에 도입하면 생산성을 크게 향상시킬 수 있고, 거의 모든 측면에서 더 나은 프로그래머가 될 수 있다.