48시간 안에 나만의 스킴 만들기/개요

인터넷에 있는 대부분의 하스켈 튜토리얼은 프로그래밍 언어 레퍼런스 매뉴얼과 비슷한 방식으로 가르친다. 대부분의 하스켈 튜토리얼은 인터랙티브 프롬프트에서 문법, 생성자, 간단한 함수 만드는 방법을 가르친다. 함수나 유용한 프로그램 작성 방법 같은 “어려운 부분”은 튜토리얼 마지막에 나오거나 아예 안 나온다.

이 튜토리얼은 다른 접근법을 사용한다. 이 튜토리얼은 명령줄을 사용하고 구문을 분석하는 것으로 시작한다. 이어서 R5RS 스킴의 일부를 구현하는 완전한 기능의 스킴 인터프리터를 작성한다. 그 과정에서 하스켈의 I/O, 가변 상태, 동적 타입, 오류 처리, 파싱 기능을 배운다. 책이 끝날 즈음에는 하스켈과 스킴에 상당히 능숙해질 것이다.

이 튜토리얼의 대상 독자는 다음과 같다.

  • 리스프스킴을 알면서 하스켈을 배우고 싶은 사람
  • 프로그래밍 언어를 전혀 모르지만 수학적 배경이 강하고 컴퓨터에 익숙한 사람

위 대상 독자 중 두 번째에 해당하는 사람에게는 이 튜토리얼이 어려울 수 있다. 왜냐하면 이 튜토리얼은 하스켈에 집중하기 위해 스킴과 일반 프로그래밍의 여러 개념을 간략히 다루고 넘어가기 때문이다. 리스프나 스킴이 궁금하다면 «SICP»나 «The Little Schemer» 같은 좋은 책이 도움이 될 수 있다.

C, Java, Python 같은 절차적 또는 객체지향 언어 사용자들은 주의해야 한다. 프로그래밍에 대해 이미 알고 있는 것의 대부분을 잊어버려야 한다. 하스켈은 위에서 말한 언어와 완전히 다르다. 하스켈을 하려면 프로그래밍에 대해 다른 방식으로 생각해야 한다. 머리를 비운 상태에서 이 튜토리얼을 시작하는 게 좋다. 하스켈을 명령형 언어와 비교하려고 하지 마라. 왜냐하면 하스켈에서는 클래스, 함수, return 같은 개념이 완전히 다른 것을 의미하기 때문이다.

이 튜토리얼은 예제 코드가 앞에서부터 누적되기 때문에 앞에서부터 순서대로 읽는 게 좋다.

이 튜토리얼에서는 하스켈 컴파일러로 GHC를 사용한다. 코드는 Hugs나 다른 컴파일러에서도 동작하겠지만 공식적으로 테스트 해보지는 못했다. 실습 과정에서 추가 라이브러리를 다운 받아야 할 수 있다.

위키책 이전 에디션 소스 코드 파일은 원조 사이트에서 이용할 수 있다.