Tw/Haskell入門的5個步驟

From HaskellWiki
Revision as of 02:39, 14 January 2014 by Kevinwatt (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Haskell 是一個純粹的函式程式语言。本頁將幫助你快速的入門

安裝 Haskell

跟多數語言一樣, Haskell有兩種執行方法: 批次處理("編譯器")跟交互式("直譯器")。直譯式系統可以給你一行命令列(Command line), 讓你直接的進行實驗或評估。


GHC 編譯器和直譯器(GHCi) 最多人用, 也是最有未來性的系統
Hugs 編譯器 移植性佳, 而且比GHC小的多.

GHC跟Hugs都可以在 Windows 上作業,Hugs有最佳的平台整合。除此之外, GHC是最多實際用來開發與維護的. 這兩套軟體無異是適合新手或老手的選擇。在 Mac OS X 上安装 Haskell

開始使用Haskell

開啟一個終端機. 如果你已經安裝了GHC, 直接在命令列上輸入 ghci (GHC的直譯器的名子)。如果你安裝的是Hugs, 輸入 hugs

    $ ghci
       ___         ___ _
      / _ \ /\  /\/ __(_)
     / /_\// /_/ / /  | |      GHC Interactive, version 6.4, for Haskell 98.
    / /_\\/ __  / /___| |      http://www.haskell.org/ghc/
    \____/\/ /_/\____/|_|      Type :? for help.

    Loading package base-1.0 ... linking ... done.
    Prelude>

當你出現提示符號, 那表示Haskell系統已經在準備你的輸入了。

撰寫你的第一個Haskell程式

如果你已經學過其他程式了,你的第一個程式大概是"Hello, world!"。那我們也這樣搞吧。

Prelude> "Hello, World!"
"Hello, World!"

Haskell系統評估為一個字串(string),接著列出(printed)結果。或者我們可以用另一種方法將它直接列印到標準輸出上。

Prelude> putStrLn "Hello World"
Hello World

使用Haskell的編譯器,像GHC,你可以編譯程式碼讓程式獨立執行。建立一個hello.hs,內容為:

main = putStrLn "Hello, World!"

然後用下列命令編譯他:

    $ ghc -o hello hello.hs

接著你就得到一個可執行的執行檔了 ( Unix系統為./hello, Windows則為hello.exe )

    $ ./hello
    Hello, World!

Haskell的計算

來搞些有趣的吧. 在Haskell,你的第一個真正的程式是乘階的function。 所以現在讓我們回到直譯器,接著輸入:

Prelude> let fac n = if n == 0 then 1 else n * fac (n-1)

這一行定義了一個新的function,名子叫fac。將接收一個整數以供乘階運算。 我們可以輸入參數執行fac:

Prelude> fac 42
1405006117752879898543142606244511569936384000000000

恭喜! 寫程式就是這樣容易。需要注意的是如果你使用的是Hugs,你將需要從檔案中載入定義的facfac.hs

fac n = if n == 0 then 1 else n * fac (n-1)

然後用Hugs執行他,如下:(在GHCi也能這樣做)

Hugs.Base> :load fac.hs
Main> fac 42
1405006117752879898543142606244511569936384000000000

我們也可以編譯這個程式,產生一個獨立的執行檔. 在fac.hs裡可以這樣寫。 (這裡換了一個比較優雅的寫法, 只是為了好玩.)

fac 0 = 1
fac n = n * fac (n-1)

main = print (fac 42)

現在可以編譯並執行它:

    $ ghc -o fac fac.hs
    $ ./fac
    1405006117752879898543142606244511569936384000000000

幹的好!

接著該往哪走

有很多很好的Haskell教學資料跟書本。這裡有一些我們推薦的:

教學


完整的列表, 參考跟教學:

加入社群!

跟別的Haskell社群成員交流:

語言: English