Haskell 入門

線上 REPL

開始編寫 Haskell 的最簡單方法可能是訪問 Haskell 網站嘗試 Haskell並在主頁上使用線上 REPL(read-eval-print-loop)。線上 REPL 支援大多數基本功能甚至一些 IO。還有一個基本教程可以通過輸入命令 help 來啟動。一個理想的工具,開始學習 Haskell 的基礎知識並嘗試一些東西。

GHC(I)

對於準備參與更多的程式設計師來說, GHCiGlorious / Glasgow Haskell 編譯器 附帶的互動式環境。該 GHC 可以單獨安裝,但是,這只是一個編譯器。為了能夠安裝新庫,還必須安裝 CabalStack 等工具。如果你執行的是類 Unix 作業系統,最簡單的安裝是使用以下命令安裝 Stack

curl -sSL https://get.haskellstack.org/ | sh

這會將 GHC 與系統的其他部分隔離開來,因此很容易刪除。所有命令必須以 stack 開頭。另一種簡單的方法是安裝 Haskell 平臺 。該平臺有兩種形式:

  1. 最小的分佈只包含 GHC (編譯)和卡瓦爾/堆疊 (安裝和構建軟體包)
  2. 分佈還包含用於專案開發,分析和覆蓋分析工具。還包括另外一組廣泛使用的包。

可以通過下載安裝程式並按照說明或使用你的發行版的軟體包管理器來安裝這些平臺 (請注意,此版本不保證是最新的):

  • Ubuntu,Debian,Mint:

    sudo apt-get install haskell-platform
    
  • Fedora 的:

    sudo dnf install haskell-platform
    
  • 紅帽:

    sudo yum install haskell-platform
    
  • Arch Linux:

    sudo pacman -S ghc cabal-install haskell-haddock-api \
                   haskell-haddock-library happy alex
    
  • Gentoo 的:

    sudo layman -a haskell
    sudo emerge haskell-platform
    
  • OSX 與 Homebrew:

    brew cask install haskell-platform
    
  • OSX 與 MacPorts:

    sudo port install haskell-platform
    

安裝後,應該可以通過在終端的任何位置呼叫 ghci 命令來啟動 GHCi 。如果安裝順利,控制檯應該看起來像

me@notebook:~$ ghci
GHCi, version 6.12.1: http://www.haskell.org/ghc/  :? for help
Prelude> 

可能還有關於在 Prelude> 之前載入了哪些庫的更多資訊。現在,控制檯已成為 Haskell REPL,你可以像線上 REPL 一樣執行 Haskell 程式碼。為了退出這個互動環境,可以輸入:q:quit。有關 GHCi 中可用命令的更多資訊,請在開始螢幕中鍵入:?

因為在一行上一次又一次地寫相同的東西並不總是這樣,所以在檔案中編寫 Haskell 程式碼可能是個好主意。這些檔案通常具有 .hs 作為副檔名,可以使用:l:load 載入到 REPL 中。

如前所述, GHCiGHC 的一部分, GHC 實際上是一個編譯器。此編譯器可用於將帶有 Haskell 程式碼的 .hs 檔案轉換為正在執行的程式。因為 .hs 檔案可以包含許多函式,所以必須在檔案中定義 main 函式。這將是該計劃的起點。可以使用該命令編譯檔案 test.hs

ghc test.hs

如果沒有錯誤並且正確定義了 main 函式,這將建立目標檔案和可執行檔案。

更高階的工具

  1. 它之前已經被提到作為包管理器,但是堆疊可以以完全不同的方式用於 Haskell 開發的有用工具。一旦安裝,它就能夠

    • 安裝(多個版本) GHC
    • 專案建立和 Scaffolding
    • 依賴管理
    • 建設和測試專案
    • 標杆
  2. IHaskell 是 IPythonhaskell 核心 ,允許將(可執行的)程式碼與 markdown 和數學符號結合起來。