如何執行 Haskell ?
Haskell 除了編譯,也提供 REPL 與 Script
Contents
Haskell 提供各種執行方式,除了可編譯之外,還提供 REPL、Script,也可直接在 IDE 內執行,非常方便。
Version
macOS High Sierra 10.14
GHC 8.4.3
Haskell for Mac 1.6.0
安裝 GHC
1 | $ brew install ghc |
使用 Homebew 安裝 GHC。
執行 GHCi
預設 prompt 為 Prelude>
,可自行修改成 GHCi>
。
.ghci
1 | :set prompt "GHCi> " |
- 在 home directory 建立
.ghci
,設定 prompt 為GHCi
。
1 | $ ghci |
- 輸入
ghci
- Prompt 為
GHCi
1 | ghci> :q |
- 輸入
:q
離開 GHCi。
編譯執行 Haskell
GHC 可將 Haskell 編譯成執行檔執行。
HelloWorld.hs
1 | main = |
以 Haskell 印出簡單的 Hello World
。
main 為 Haskell 執行檔第一個執行的 function
1 | $ ghc HelloWorld.hs |
使用 ghc
編譯 HelloWorld.hs
。
- 編譯出
HelloWorld
執行檔,也一併編譯出.hi
與.o
等中間檔
1 | $ ./HelloWorld |
- 直接執行
hello-world
執行檔。
以 GHCi 執行 Haskell
Haskell 亦可以使用 REPL 方式執行。
- 輸入
ghci
進去 GHCi - 輸入
:l
+檔名
載入檔案 - 在 GHCi 執行 function
以 runghc 執行 Script
Haskell 也可以不用編譯,直接以 script 形式執行。
runghc
+檔案名稱
即可立即執行
直接執行 Script
也可如同 Bash 一樣,直接執行 script。
HelloWorld.hs
1 | #!/usr/bin/env runghc |
在第一行加上 #!/usr/bin/env runghc
1 | $ chmod +x HelloWorld.hs |
使用 chmod
設定 HelloWorld.hs
能被執行。
1 | $ ./HelloWorld.hs |
直接執行 HelloWorld.hs
。
Haskell for Mac
- 建立
HelloWorld.hs
- 在左側建立
main
function - 在右側
Run Playground
執行 function,相當於 GHCi - 下方顯示結果
Conclusion
- Haskell 除了可編譯外,尚提供 REPL 與 Script 模式,無論你習慣編譯式語言或者 Script,都可以找到自己習慣的方式
- Haskell 也可以類似 Bash 方式直接執行
- 若使用 Haskell for Mac 這類 IDE,也類似 GHCi,可以每個 function 單獨測試