[책 리뷰] 가지고 싶지만 쉽게 가질 수 없는 이상형 : 만들면서 배우는 리스프 프로그래밍

TV에 나오는 연예인과  사귀는 것을 꿈꿔본 적이 있을겁니다.  내 여자친구가  소녀시대라면 내 여자친구가 김태희, 혹은 한가인이라면… 하지만, 현실은 그렇지 않습니다. 이상형은 이상형일 뿐이라는 것을 알게 되죠 ^^, 저에겐 Lisp이라는 언어가 그런 이상형입니다. 절차형 언어와 함수형 언어는 동양 철학과 서양 철학의 개념처럼 멀리 떨어져 있습니다.

그런데 절차형 언어를 배우던 사람이 함수형 언어를 배우기가 쉽지가 않습니다. 얼마전에 “당신이 영어를 못하는 진짜,이유” 라는 다큐멘터리를 보았는데, 그 와 비슷한 것 같습니다. 몇 년을 공부해도, 자신감과 뇌속의 깊숙한 곳에 넣어서 절차 기억으로 만들지 못하면, 제대로 쓸 수 없다라는 것. 혹자들은 Lisp는 쉽다고 하시는데, 엄청난 연습이 필요할 것 같습니다. 절차형 언어를 배울때도 마찬가지입니다.

저의 Lisp에 대한 도전은 사실 큰 노력이 없었습니다. SICP, How To Design Programm, Clojure, Haskell 등 책을 사고, 스터디도 했지만, 사고를 Lisp 적으로 바꾸는 것, 항상 이것을 제대로 하지 못했습니다. 결국 연습이 부족했다는 것이죠.

“만들면서 배우는 리스프 프로그래밍” , “Land of Lisp” 은 Lisp 입문서 입니다. 쉽게 스여있고, 아직까지도, caddr, cadadr 같은 것은 좀 더 고민해야 하지만,  간단한 예제들 부터 시작해서, 좀 더 복잡한 예제까지, 약간 규모가 있는 예제들을 보여줍니다. 제 개인적으로도 아주 작은 예제들이 있는 것과, 꽤 끈 규모가 있는 것들 중에서, 작은 규모에서는 문법을, 큰 규모에서는 어떻게 사고해야 하는가를 배웠던 것 같습니다.(아 Lisp 얘기는 아니고, 다른 언어들에 연관된 책들 얘기입니다.)

Lisp 이라는 얘기를 들으면, 일반적으로 Side Effect 가 없다라고 많이 생각합니다. 여러 변수들의 값이 Set 후에 바꿀 수 없기 때문인데, 책을 보면서, 시작과 동시에 defparameter 를 가르쳐 줘서, 잠시 당황하기도 했습니다. ^^

이 책은 지금까지 나왔던, SICP나 scheme을 다루던 책들과는 달리 Common Lisp을 다룹니다. (뭐, 그래도 별 차이는 없습니다. 둘 다 이해 안되요. T.T)  어떻게 보면 이제 새롭게 인기를 끌고 있는 함수형 언어로써, Erlang, Clojure 등을 배워야 하지 않을까 라는 생각도 듭니다만, 아까 말한 대로, Lisp으로 가기 위해서는 우리의 뇌를 함수형에 익숙해지도록 하는 것이 필요합니다. 그럴려면, 쉬운 책을 보면서 계속 반복학습 하는 것이 좋을 꺼 같습니다. Land Of Lisp은 국내에 번역된  Lisp 책 중에서, 가장 쉽습니다.( 국내 번역된 Lisp 관련 책은 전부 사서 봤습니다만, 제 머리속에는 아직 하나도 안남아있습니다. ) 그렇다고, 이 한 권 읽어서 Lisp을 과연 마스터 할 수 있을까는 또 의문입니다. 결과는 열심히 연습해야지만 가능하겠죠.

제 개인적인 2012년의 목표는 Lisp 관련 함수형 언어를 하나 정도 마스터 하는 것입니다. 일단 이 책을 반복해서 보고, 연습하는 걸 그 목표로 하려고 합니다.  여러분도 Lisp 나라로 함께 여행을 떠나보는게 어떨까요?