티스토리 뷰

Hobby/Book

[Book] 만들면서 배우는 리스프 프로그래밍

생각많은 소심남 2013. 1. 13. 23:38

이번에 소개할 책은 바로 LISP 관련 책입니다.



사실 이 책을 선택한 이유는 단지 리스프라는게 뭔지 궁금해서였습니다. 즉, 이전에는 리스프라는게 있다는 사실만 알고 있었던 거지 무엇이고 어디에 쓰인다는 기본 지식이 없는 상태에서  책을 읽기 시작했습니다. 

 위키피디아의 말을 빌려오자면 LISP이라는 말 자체가 LISt Processing의 약자입니다. 그래서 나오는 문법의 대부분이 List와 관련된 형태가 무척 많습니다. 그런 만큼 수학적 형태를 표현한 경우가 많고, 알고리즘 및 자료 구조 분야에서 쓰이는 언어입니다. 하지만 쓰이는 구조나 문법이 일반 프로그래밍을 다루던 사람에게는 익숙하지 않기 때문에 우리나라에는 그렇게 알려져 있지 않습니다. 다른 관점에서 보면 언어 자체가 기능보다는 구조를 표현하는데 주를 두고 있기에 어렵다고 볼 수 있겠지요. 참고로 우리나라에는 LISP 사용자 모임(http://cafe.naver.com/lisper) 과 LISP을 좋아하는 사람들의 모임(https://groups.google.com/forum/?fromgroups#!forum/lisp-korea) 형태로 그룹이 형성되어 있습니다. 많은 자료들이 잘 정리되어 있으니 참고하시면 좋을 듯 합니다.

 여담이 길었네요. 

이 책은 책 제목에도 들어 있지만 Land of LISP이라는 책의 번역본입니다. 


<http://landoflisp.com/>


 책 표지가 이상해보이지만 저게 진짜 책 표지 그림입니다. 더 재미있는 건 이 책의 뮤직비디오도 있고 홈페이지도 재미있는 형태로 되어 있다는 겁니다. 궁금하신 분은 꼭 한번 들어가보시기 바랍니다. 아무튼 이 책도 지난 번에 소개했던 헤드 퍼스트 C와 비슷한 구조로  딱딱한 형태의 구조가 아닌, 만화와 스토리로 내용이 진행되는 형식을 취하고 있습니다. 그대신 그 때의 과한 내용진행(?)이 아닌 하나의 예제를 구현해보는 방식을 처음부터 천천히 진행해갑니다. 이 책을 통해서 해볼 수 있는 예제로는 LISP의 형태중 하나인 Common LISP으로 인공지능형 플레이어가 들어간 게임 /  웹서버를 구현하는 겁니다. 딱 이름만 들으면 어려움이 느껴질 예제임에도 처음부터 구현하는 것이기에 아마 리스프를 입문하는 사람에게 도움이 될 책이 아닐까 생각되네요.


< 중간에 나오는 만화 중 하나 >


 덕분에 처음 접하는 입장에서도 LISP의 개념이나 예제를 재미있게 해볼 수 있었던 기회였던 것 같습니다. 읽는 내내 저자가 어떻게 이런 주제로 개념서를 쓸 수 있었을까 하는데 대해서도 경외감이 들정도로 잘 써진 책 같습니다. 물론 우리말로도 잘 번역된 역자분의 노력이 빛을 발해서 더 쉽게 읽을 수 있었겠지요.


아참. 뭔가 체계적인 LISP 학습을 원하시는 분이라면 

Common Lisp: A Gentle Introduction to Symbolic Computation

David S. Touretzky

이라는 책을 보시길 권합니다. 무료로 공개되어 있습니다.(http://www.cs.cmu.edu/~dst/LispBook/)


댓글