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 구문 에러이다.



<winhugs.exe를 실행한 WinHugs의 GUI>


크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Scripter
,