이책에서다루는내용
함수형프로그래밍기본개념을배우고함수형프로그래머가문제에접근하는방식을탐구한다.
함수형프로그래밍이객체지향프로그래밍과명령형프로그래밍이어떻게다른지이해할수있다.
함수적인방식으로현실을모델링하는실용적이고적용가능한디자인패턴세트를사용할수있다.
함수형프로그래밍및객체지향프로그래밍기능을소프트웨어프로젝트에통합하는방법을학습할수있다.
함수형디자인패턴을적절하게적용하고,정확하고견고한동시에쉽게수정할수있는코드를작성할수있다.
이책의대상독자
기본적으로모든프로그래머를대상으로한책이다.함수형프로그래밍에대한경험은없지만들어본적이있고,궁금한점이많거나지식이전혀없는상태에서서점에서이책을구매한경우에도유용할것이다.숙달된함수형프로그래밍프로그래머또한도움이될만한내용을찾을수있을것이다.
함수형프로그래밍에관해다른책에서는다루지않는방식으로함수형프로그래밍의범주론의근간을심층적으로설명한다.마지막으로활용경험이어느정도있지만함수형프로그래밍을구성하는개념과이론을더깊이이해하고싶은프로그래머는이책을통해많은것을배우고즐길수있을것이다.
옮긴이의말
최근스칼라,코틀린,타입스크립트,하스켈등다양한함수형프로그래밍언어가소프트웨어개발에활용되고있다.이러한인기의비결은함수형프로그래밍만이갖고있는여러특징때문이다.많은프로그래밍언어가개발의편의성을이유로동적타입시스템을적용한프로그래밍언어를사용하고있다.그러나이는유지보수를어렵게만들며예기치못한오류를발생시킨다.반면,함수형프로그래밍은부수효과(sideeffect)가없기때문에테스팅과디버깅에용이하다는장점이있다.정적타입시스템을채택한함수형프로그래밍은이러한장점을극대화시킬수있다.하지만함수형프로그래밍은반복문,조건문과같은기본적인문법만익혀서는효과적으로실무에사용할수없으며일급객체,범주론,집합론등다양한수학적개념을익혀야효과적으로사용할수있다.이책에서는이러한수학적개념들과함께불변성,지연계산법과같은특징을다루기때문에함수형프로그래밍의본질을이해하고실제업무에활용하는데많은도움이될것이다.
과거명령형프로그래밍만전적으로사용하던시절이있었지만현재는객체지향프로그래밍과명령형프로그래밍이함께조화를이루고있다.앞으로는함수형프로그래밍과객체지향프로그래밍을함께활용하는개발방법론이적용될것이다.이책은이러한함수형프로그래밍과객체지향프로그래밍을함께사용할수있는방법도다루고있다.프로그래밍언어연구에매진하는연구원으로서함수형프로그래밍을배우고싶어하는독자에게이책을강력히추천한다.