하스켈 설치하기

+/-

하스켈은 프로그래밍 언어이다. 컴퓨터가 어떻게 동작할지 사람이 표현하는 것이 언어이다. 프로그래밍 언어는 마치 요리 레시피를 쓰는 것과 같다. 사람이 레시피를 쓰면 컴퓨터가 레시피를 실행한다.

하스켈로 프로그램을 만들려면 하스켈 컴파일러라고 부르는 특별한 프로그램이 필요하다. 컴파일러는 하스켈로 쓴 코드를 입력 받아서 기계어로 번역한다. 기계어는 컴퓨터가 이해하는 단순한 언어이다. 요리에 비유하면 사람이 레시피(하스켈 프로그램)를 작성하고 요리사(컴파일러 프로그램)가 실제 재료를 모아서 먹을 수 있는 요리(실행 파일)를 만드는 작업을 한다. 요리 결과물을 보고 레시피를 쉽게 알아낼 수 없듯이 컴파일된 실행 파일에서 하스켈 소스 코드를 얻을 수 없다.

하스켈 프로그래밍을 시작하려면 하스켈 공식 홈페이지에 방문해서 최신 지침을 따르자. 현재 추천하는 방법은 GHCup을 사용하는 것이다. GHCup으로 최신 추천 버전 GHC와 Cabal을 설치하자. 하스켈 라이브러리를 설치하려면 Cabal을 써야 한다. 자세한 Cabal 사용 방법은 패키징에서 다룬다.

리눅스에서 패키지 저장소와 패키지 매니저로 하스켈 프로그램 설치를 권장하지 않는다.(페도라나 NixOS라면 괜찮다.) 특히 아치 리눅스와 데비안은 하스켈 패키지를 형편 없게 관리해서 나쁜 경험을 할 수 있다. 위에서 말한대로 GHCup과 Cabal을 사용하자.

프로그램을 다운로드 하거나 설치하지 않고 하스켈 기초를 테스트 해보려면 하스켈 운동장을 써보자. 하스켈 운동장에는 몇몇 패키지가 기본으로 포함되어 있다. 이 위키책에 나오는 대부분의 내용은 하스켈 운동장에서도 작동한다. 다만 하스켈 운동장에서 사용자 입력은 할 수 없다.

첫 번째 코드

+/-

GHC를 설치했다면 GHCi로 첫 번째 하스켈 코딩을 해보자. GHCi에서 i는 인터랙티브(interactive)를 의미한다. 운영체제에 따라 아래와 같이 해보자.

  • 윈도우: 시작 버튼을 누르고 실행을 누른다. cmd를 입력하고 Enter키를 누른다. ghci를 입력하고 Enter 키를 누른다.
  • macOS: 터미널 앱을 열고 ghci라고 입력한다.
  • 리눅스: 터미널을 열고 ghci라고 입력한다.

GHCi를 실행하면 아래와 같은 화면이 나온다.

GHCi, version 8.10.7: http://www.haskell.org/ghc/  :? for help
Prelude>

먼저 GHCi의 버전이 나온다. 다음으로 도움말을 출력하는 방법을 안내한다. Prelude> 는 프롬프트라고 부른다. 프롬프트에 명령어를 입력하면 GHCi가 결과를 출력한다. 프롬프트를 보면 현재 불러온 모듈의 이름이 Prelude라는 것을 알 수 있다. Prelude 모듈을 통해 내장 함수를 사용할 수 있다.

GHCi에서 산수를 해보자.

Prelude> 2 + 2
4
Prelude> 5 + 4 * 3
17
Prelude> 2 ^ 5
32

연산자 +, *, ^는 다른 프로그래밍 언어에서도 쓰인다. +는 더하기, *는 곱하기, ^는 거듭제곱이다.

하스켈을 어떻게 계산기로 쓰는지 확인했다. 하스켈은 산수뿐만 아니라 글자, 리스트, 함수, 나무 자료구조, 심지어 다른 프로그램까지 다룰 줄 아는 강력한 계산기이다.(여기서 언급한 용어가 익숙하지 않더라도 걱정하지 않아도 된다.)

GHCi를 종료하려면 :quit> 혹은 :q라고 입력한다.

Prelude> :quit
Leaving GHCi.

GHCi는 강력한 개발 환경이다. 독자는 GHCi에서 소스 코드가 담긴 파일을 어떻게 불러오고 평가하는지 배울 것이다.

여기까지 잘 이해했다면 다음 장으로 갈 준비가 됐다.(만약 이해가 되지 않은 부분이 있다면 토론 페이지에 글을 남겨 이 위키책에 기여하기 바란다.) 다음 장에서는 하스켈 기본 개념을 소개하고 첫 번째 하스켈 함수를 만들어 본다.