趁着本身重裝Linux 虛擬機的機會,把安裝 haskell 的過程記錄一下,順便幫那些還猶豫徘徊在haskell門外的讀者入門。html
是一門通用函數式語言,差點兒可以進行不論什麼種類的開發,包含命令行,GUI,數據庫,Web.源碼可以跨平臺: Linux,Mac, Windows, FreeBSD 等. python
函數式變成風格爲主,命令式風格爲輔,具備嚴格且方便易用的類型系統。類型檢查可以幫助程序猿在開發過程當中避免很是多錯誤,並輔助組織程序的結構。 linux
主要有 GHC, hugs 兩種, 還有中 nhc 沒用過就不說了。咱們這裏要安裝的是 GHC,以及在 ghc 基礎上的 Haskell Platform。數據庫
全稱: Glasgow Haskell Compiler , 包括一個高效的Haskell編譯器ghc,以及一個類似 python 交互環境的解釋器 ghci 。GHC可以編譯生成高效的可運行程序。bash
Haskell Platform 是一個打包的haskell 開發環境,包括GHC以及很是多第三方開發庫,以及cabal 包管理器等。函數
簡單說就是 Ubuntu 的 apt-get, Perl 的 cpan , Python 的 easy_install , Ruby 的 gem 。 這麼說明確了吧.工具
要安裝一個第三方庫,僅僅需要: cabal install lib-name 就可以了。 差點兒就這麼簡單。開發工具
有一個 HackageDB 類似與 Perl 的cpan 的東西,這個列表包括了 Haskell 可用的第三方庫。安裝用同一的方式: cabal install libname 就可以了。 大部分的庫可以很是方便的安裝,只是一些第三方庫會依賴一些特定系統的庫,所以不是總能順利安裝。命令行
===================調試
(本文基於 Ubuntu 9.10 , 對於其它基於 apt-get 的Linux也適用。)
sudo
apt-get
install
libedit2 libedit-dev freeglut3-dev libglu1-mesa-dev libgmp3-dev
在 GHC下載頁面 , 選擇適合的版本號下載(x86, x86_64) ,比例如如下載 x86版本號 Linux:
wget http://haskell.org/ghc/dist/6.12.1/ghc-6.12.1-i386-unknown-linux-n.tar.bz2
$ tar jxvf ghc-6.12.1-i386-unknown-linux-n.tar.bz2
$ cd ghc-6.12.1
$ ./configure
$ sudo make install
安裝完,測試下:
下載: wget http://hackage.haskell.org/platform/2010.1.0.0/haskell-platform-2010.1.0.0.tar.gz
解壓縮, ./configure , make, make install
make 的過程可能比較長,要編譯一大堆的第三方庫。
安裝完 Haskell Platform 後,會提示用戶進行 cabal update , 就是更新下庫的文件夾列表:
$ cabal update
要安裝一個庫,首先在 HackageDB 上找到需要的庫,而後執行 cabal install 就能夠:
=====================
說了這麼久,最終到了我最喜歡的 Hello World 階段了。
haskell 程序既可以解釋運行也可以編譯運行,這在開發過程當中是很是方便用來調試的。
> print "hello world"
"hello world"
看上去很是easy,沒啥出奇的東西。如下嘗試些有意思的東西:
如下來寫一個完整的程序,並且編譯成可運行文件, 首先編寫 hello.hs 文件,內容例如如下,用 ghc 編譯。
隆重推薦 Emacs ,Emacs 中的 Haskell-mode 在編敲代碼中,幫助進行縮進、語法高亮等,配合 unicode 顯示,可以獲得很美麗的效果。
另開一篇具體解釋emacs 環境吧。