
책 소개
요약
불변성(immutability)과 지연 계산(laziness)을 활용해 100% 함수적으로 만든 데이터 구조와 알고리즘도 명령형 데이터 구조나 알고리즘만큼 성능이 좋을 수 있다는 것을 보여준다. 그리고 함수형 데이터 구조를 만들기 위한 몇 가지 방법을 제시한다. 함수형 프로그래밍을 공부하는 사람들 사이에서는 일종의 고전으로 자리잡은 중요한 책으로, 데이터 구조만 다루지 않는다. 이 책에서 제시하는 여러 기법을 이용해 직접 코드를 작성하고 분석하다 보면 함수형 프로그래밍 방식에 눈뜰 수 있을 것이다.
이 책의 구성과 대상 독자
데이터 구조를 다루는 대부분의 책에서는 C나 C++와 같은 명령형(imperative) 언어를 가정하고 설명한다. 하지만 명령형 언어의 데이터 구조는 SML(Standard ML), 하스켈(Haskell), 스킴(Scheme) 등의 함수형 언어로 잘 변환되기 어렵다. 이 책은 함수형 언어의 관점에서 데이터 구조를 살펴보고, 프로그래머가 자신만의 함수형 데이터 구조를 개발할 때 도움이 되는 여러 설계 기법을 보여준다. 적흑 트리(red-black tree)나 이항 큐(binomial queue) 등의 전통적인 데이터 구조를 배우며, 함수형 언어를 위해 별도로 개발한 여러 데이터 구조를 살펴본다. 모든 소스 코드는 SML과 하스켈로 만들어졌지만, 그 밖의 함수형 언어로도 쉽게 바꿀 수 있을 것이다.
이 책은 함수형 언어를 다루는 전문 프로그래머가 간편하게 참고할 수 있는 책이며, 함수형 언어를 공부하고 싶은 개발자에게는 자습서로 쓰기 좋다.