Haskell是一種通用的,純函數(shù)式編程語言,
其中包含了很多編程語言研究領(lǐng)域中的新概念。
Haskell提供了高階函數(shù)效斑,非嚴(yán)格語義(non-strict semantics),靜態(tài)多態(tài)類型柱徙,
用戶自定義的代數(shù)數(shù)據(jù)類型缓屠,模式匹配,列表解析(list comprehension)护侮,
模塊系統(tǒng)敌完,monadic IO系統(tǒng)。
Haskell包含了豐富的原始數(shù)據(jù)類型羊初,
包括列表滨溉,數(shù)組,任意精度的整數(shù),以及浮點(diǎn)數(shù)业踏。
Haskell是非嚴(yán)格(non-strict)函數(shù)式語言領(lǐng)域禽炬,多年研究的結(jié)晶涧卵。
1987年9月在美國俄勒岡州的波特蘭勤家,
舉行了一次關(guān)于函數(shù)式編程語言和計(jì)算機(jī)體系結(jié)構(gòu)的會(huì)議,F(xiàn)PCA'87柳恐。
會(huì)議看到了函數(shù)式編程社區(qū)的現(xiàn)狀伐脖,
社區(qū)中已經(jīng)出現(xiàn)了十幾個(gè)非嚴(yán)格的(non-strict)語義的純函數(shù)式編程語言,
它們?nèi)急憩F(xiàn)力豐富乐设,而且建立在語義學(xué)基礎(chǔ)之上讼庇。
人們看到,沒有一門公共語言妨礙了這些語言的廣泛使用近尚。
于是蠕啄,會(huì)議達(dá)成共識(shí),決定設(shè)計(jì)一門新的語言戈锻,用來更快的交流新想法歼跟,
這樣可以保證基礎(chǔ)更加牢固,也可以推動(dòng)實(shí)際生產(chǎn)環(huán)境中的使用格遭。
對(duì)于那些想學(xué)習(xí)函數(shù)式語言的人們哈街,也方便了許多。
這門語言就是Haskell拒迅,以邏輯學(xué)家Haskell B. Curry命名骚秦。
Haskell的設(shè)計(jì)初衷是滿足以下幾個(gè)約束條件:
(1)它必須便于教學(xué),科研和使用璧微,可以用于構(gòu)建大型系統(tǒng)作箍。
(2)它必須完全用形式化的方法來表示語法和語義。
(3)它必須是免費(fèi)的前硫。任何人可以實(shí)現(xiàn)它胞得,傳播它。
(4)它必須建立在共識(shí)的基礎(chǔ)之上开瞭。
(5)它必須消除眾多函數(shù)式語言中不必要的多樣性懒震。
和其他的語言一樣,Haskell一直在演化嗤详。
到1997年年中个扰,就已經(jīng)更新了5個(gè)版本,Haskell 1.0-1.4葱色。
在阿姆斯特丹的Haskell工作室(workshop)递宅,決定發(fā)布一個(gè)穩(wěn)定的版本。
于是,1999年2月制訂了名為“Haskell 98”的規(guī)范办龄。
修復(fù)了少量Bug的“Revised Haskell 98”的規(guī)范于2002年發(fā)布烘绽。
2005年,Haskell出現(xiàn)了很多擴(kuò)展俐填,且以不同的形式實(shí)現(xiàn)了安接。
在社區(qū)力量的推動(dòng)下,人們確定了一個(gè)規(guī)范制訂的流程Haskell Prime英融,
力求把那些熟知的盏檐,廣泛使用的特性加入到Haskell 98中,
目的是保持語言的穩(wěn)定性驶悟,同時(shí)也能反映最新的研究成果胡野。
對(duì)語言本身進(jìn)行一次大量的改動(dòng)是個(gè)艱巨的任務(wù),
最好能夠以小步快跑的方式來推動(dòng)語言的演化痕鳍,
每次修訂最好只包括少量的一些特性硫豆,
目前Haskell 2010是第一個(gè)修訂版。
Haskell 2010 committee已經(jīng)解散了笼呆,
最近成立的委員會(huì)是Haskell Prime 2020 committee熊响,
目標(biāo)是產(chǎn)出Haskell 2020語言規(guī)范。
參考:
haskell2010
Language and library specification
Haskell Prime