2. GHIi 사용법

 
일, 2006-08-20 01:55 — 귤
GHC는 Haskell에서 사실상(de facto) 표준의 위치를 차지하고 있는 컴파일러이다. 그 자체가 Haskell로 작성되어 있으며 컴파일러와 인터프리터, 다양한 확장 및 라이브러리를 포함하고 있다. 교육용으로 쓰이는 hugs에 비해 더할 바 없이 강력한 기능들을 가지고 있으므로, Haskell을 본격적으로 사용하고자 한다면 처음부터 GHC로 시작하는 것도 나쁘지 않겠다. 인터프리터의 사용방법은 hugs와 큰 차이가 없으며, 컴파일러 사용법도 어렵지 않다.

설치

GHC 홈페이지에서 자신의 운영체제에 맞는 최신 버전 GHC를 다운 받아 설치한다. 현재 최신 버전은 2006년 4월에 발표된 6.4.2이다.

GHCi

GHCi는 GHC에 포함된 인터프리터이다. 윈도의 경우 시작 메뉴에서 GHC를 클릭하면 GHCi가 표시되어 있다. 컴파일러는 도스창에서 실행시키거나, 별도의 통합개발환경(IDE)과 연동시켜 사용한다. 여기서는 GHCi 사용법만 간략히 알아보도록 하겠다. GHCi를 실행시키면 다음과 같은 화면이 뜬다.
http://www.haskell.org/ghc/
프롬프트에 나오는 이름은 현재 로드된 최상위 모듈의 이름이다. 처음에는 Haskell 표준 라이브러리인 Prelude가 로드되어 있다. 사용자의 모듈을 불러들이면 프롬프트의 이름이 불러들인 모듈 이름으로 바뀐다.
:? 을 입력하면 도움말을 볼 수 있다.
GHCi의 기본적인 명령어들은 hugs와 같다. :load 또는 :l로 모듈을 불러들일 수 있고, :reload 또는 :r로 이미 불러들인 모듈을 다시 불러들일 수 있다. 종료는 :quit 또는 :q로 한다.
GHCi는 hugs와 달리 대화 모드에서도 함수를 정의할 수 있다. 이때는 맨 앞에 let을 붙여준다.
Prelude> let x = 42 Prelude> print x 42 Prelude> let f x = x * x Prelude> f 3 9
또 마지막으로 평가된 결과는 it이라는 이름에 연결된다.
Prelude> 1 + 2 3 Prelude> it * 3 9
그 외에도 유용한 명령에는 다음과 같은 것들이 있다. :type 또는 :t는 이름에 연결된 값의 자료형을 보여준다. :show bindings 또는 :sh bindings는 대화모드에서 정의한 함수들의 목록을 보여준다. :set +t는 결과를 출력할 때 자료형도 함께 보여준다. 그외의 명령들은 도움말을 참고하기 바란다.
Prelude> let x = 3 Prelude>:t x x :: Integer Prelude> :show bindings x Prelude> :set +t Prelude> 'c' 'c' cmTypeOfName: it it :: Char

내가 만든 프로그램 불러들이기

GHCi에서 :l 또는 :load 명령을 통해 프로그램을 불러들이려면 파일의 경로명을 직접 입력해줘야 한다. 리눅스나 OS X의 경우 디렉토리 구조가 단순해서 크게 번거롭지 않고 홈 디렉토리를 ~로 표시해줄 수 있으니까 크게 불편하지 않다. 하지만 윈도에서는 "C:\Documents and Settings\username\My Documents\Haskell\homework.hs"처럼 긴 경로명을 입력해줘야 한다.
리눅스나 OS X에서도 마찬가지지만 윈도에서는 GHC를 설치하면 하스켈 소스 코드인 .hs 파일은 GHCi로 연결된다. 그러니까 자신이 만든 프로그램은 GHCi에서 불러들이고 싶다면 .hs 파일을 더블 클릭하면 된다.