Haskell 差點兒無痛苦上手指南


趁着自己重裝Linux 虛擬機的機會,把安裝 haskell 的過程記錄一下,順便幫那些還猶豫徘徊在haskell門外的讀者入門。

 

基本概念:

 

Haskell

是一門通用函數式語言,差點兒能夠進行不論什么種類的開發,包含命令行,GUI,數據庫,Web.源碼能夠跨平台: Linux,Mac, Windows, FreeBSD 等.

 

Haskell 的特點:

函數式變成風格為主,命令式風格為輔,具有嚴格且方便易用的類型系統。類型檢查能夠幫助程序猿在開發過程中避免非常多錯誤,並輔助組織程序的結構。

 

Haskell 的開發工具:

主要有 GHC, hugs 兩種, 還有中 nhc 沒用過就不說了。我們這里要安裝的是 GHC,以及在 ghc 基礎上的 Haskell Platform。

 

 

GHC

全稱: Glasgow Haskell Compiler , 包括一個高效的Haskell編譯器ghc,以及一個相似 python 交互環境的解釋器 ghci 。GHC能夠編譯生成高效的可運行程序。

 

 

Haskell Platform

 

Haskell Platform 是一個打包的haskell 開發環境,包括GHC以及非常多第三方開發庫,以及cabal 包管理器等。

 

Cabal 又是什么?

 

簡單說就是 Ubuntu 的  apt-get, Perl 的 cpan , Python 的 easy_install , Ruby 的 gem 。 這么說明確了吧.

要安裝一個第三方庫,僅僅須要:  cabal install lib-name 就能夠了。 差點兒就這么簡單。

 

怎么安裝 Haskell 的第三方庫?

 

有一個 HackageDB   相似與 Perl 的cpan 的東西,這個列表包括了 Haskell 可用的第三方庫。安裝用同一的方式:  cabal install libname 就能夠了。 大部分的庫能夠非常方便的安裝,只是一些第三方庫會依賴一些特定系統的庫,因此不是總能順利安裝。

 

===================

 

安裝過程

 

(本文基於 Ubuntu 9.10 , 對於其它基於 apt-get 的Linux也適用。)

 

1. 安裝依賴庫

 

sudo apt-get install libedit2 libedit-dev freeglut3-dev libglu1-mesa-dev libgmp3-dev

 

2. 下載 GHC

 

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

 

3. 安裝 ghc

 

$ tar jxvf ghc-6.12.1-i386-unknown-linux-n.tar.bz2

$ cd ghc-6.12.1

$ ./configure

$ sudo make install

 

安裝完,測試下:

 


4. 安裝 Haskell Platform

 

下載: wget http://hackage.haskell.org/platform/2010.1.0.0/haskell-platform-2010.1.0.0.tar.gz

解壓縮, ./configure , make,   make install

 

make 的過程可能比較長,要編譯一大堆的第三方庫。

 

5. Cabal 的配置

 

安裝完 Haskell Platform 后,會提示用戶進行 cabal update , 就是更新下庫的文件夾列表:

 

$ cabal update

 

要安裝一個庫,首先在 HackageDB 上找到須要的庫,然后執行 cabal install 就可以:

 

 

 

=====================

 

Hello World

 

說了這么久,最終到了我最喜歡的 Hello World 階段了。

 

GHCi  這個交互環境

 

haskell 程序既能夠解釋運行也能夠編譯運行,這在開發過程中是非常方便用來調試的。

 

 

 

> print "hello world"

"hello world"

 

看上去非常easy,沒啥出奇的東西。以下嘗試些有意思的東西:

 

 

 

編譯程序

 

以下來寫一個完整的程序,而且編譯成可運行文件, 首先編寫 hello.hs 文件,內容例如以下,用 ghc 編譯。

 

 

 

 

 


Haskell 的編輯環境

 

隆重推薦 Emacs  ,Emacs 中的 Haskell-mode 在編敲代碼中,幫助進行縮進、語法高亮等,配合 unicode 顯示,能夠得到很美麗的效果。

另開一篇具體解釋emacs 環境吧。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM