Haskell 언어는 Pascal, C, Java 같은 절차적 언어가 아니라, Lisp 처럼 햠수형 언어이다.
소스 코드를 파일로 저장하여 runghc 나 ghci로 실행하거나, ghc로 컴파일하려면, 소스 코드에
main =
부분이 꼭 있어야 한다.
Haskell 언어 홈페이지는 www.haskell.org 이다.
여기서는 윈도우용 GHC를 다운로드하여 설치하고 테스트하였다.
(http://hackage.haskell.org/platform/에서 HaskellPlatform-2009.2.0.2-setup.exe를 다운로드하여 설치해도 된다.)
Hugs 홈페이지(http://www.haskell.org/hugs/)에서 WinHugs-Sep2006.exe (14 MB)를 다운로드하여 설치해도 된다.
컨솔에 문자열 출력하는 Haskell 구문은
putStrLn "문자열(스트링)"
과
putStr "문자열(스트링)"
이다. putStrLn 구문은 개행 문자 "\n" 없이 개행하지만, putStr 구문은 개행 문자 "\n"를 추가해야 개행한다.
파일명: hello.hs
------------------------------[소스 시작]
main = putStrLn "Hello, world!"
------------------------------[소스 끝]
대화형 인터프리터 ghci로 실행하기:
실행> ghci hello.hs
GHCi, version 6.10.1: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer ... linking ... done.
Loading package base ... linking ... done.
Ok, modules loaded: Main.
Prelude Main> main
Hello, world!
Prelude Main> ^Z
Leaving GHCi.
위에서 ^Z는 인터프리터 ghci를 종료하기 위해 Ctrl+Z키를 누른 것이다.
컴파일하지 않고 runghc로 실행하기:
실행> runghc hello
Hello, world!
또는
실행> runghc hello.hs
Hello, world!
컴파일러 ghc로 컴파일한 후 실행하기:
컴파일> ghc --make hello.hs
실행> hello
Hello, world!
또는
컴파일> ghc -o hello hello.hs
실행> hello
Hello, world!
또는
컴파일> ghc hello.hs
실행> main
Hello, world!
WinHugs의 경우 runhugs 명령을 이용하면 타 스크립팅 언어(예를 들어, Python 또는 Ruby)의 실행기 처럼 스크립트 소스파일을 실행시킬 수 있다. GHC는 한글 출력이 안되지만, runhugs는 한글 출력도 잘 된다. 성능은 GHC가 좋겠지만, Haskell 언어를 처음 접하는 경우에는 WinHugs를 이용하는 것이 좋다고 본다.
실행> runhugs hello.hs
Hello, world!
WinHugs의 hugs 명령은 GHC의 대화형 인터프리터 ghci에 해당한다.
실행> hugs
__ __ __ __ ____ ___ _________________________________________
|| || || || || || ||__ Hugs 98: Based on the Haskell 98 standard
||___|| ||__|| ||__|| __|| Copyright (c) 1994-2005
||---|| ___|| World Wide Web: http://haskell.org/hugs
|| || Bugs: http://hackage.haskell.org/trac/hugs
|| || Version: 20051031 _________________________________________
Haskell 98 mode: Restart with command line option -98 to enable extensions
Type :? for help
Hugs> :load hello.hs
Main> main
Hello, world!
Main> putStr "한글"
한글
Main> ^Z
[Leaving Hugs]
위에서 마지막에 ^Z는 Ctrl+Z 키를 눌러 hugs 를 종료한 것이다.
다음은 그래픽 사용자 환경(GUI)을 지원하는 winhugs.exe를 실행하여 한글을 출력시켜 본 것이다. ++는 스트링을 연결(concatenation) 연산자이며, putStrLn ( ...... ) 처럼 소괄호를 둘러싼 것은 연결된 스트링이 출력 대상이기 때문이다, 소괄호로 둘러싸지 않으면 Haskell 구문 에러이다.
'프로그래밍 > Haskell' 카테고리의 다른 글
Haskell 언에에서 형(type) 변환하기 (0) | 2009.10.19 |
---|---|
if...else... 조건문 사용 예제 for Haskell (0) | 2009.10.19 |
명령행 아규먼트 처리 예제 with Haskell (0) | 2009.10.18 |
거듭제곱(지수) 계산 with Haskell (0) | 2009.10.18 |
구구단 출력 예제 with Haskell (0) | 2009.05.29 |