Haskell如何改变?

时间:2012-07-02 14:57:05

标签: haskell

当我第一次学习Haskell时,Haskell '98是官方发布的语言规范。今天,该规范是Haskell 2010.(我必须承认,我真的很难记住差异实际上是什么。)

现在Haskell一直在很长时间。 (好吧,在计算方面,这是一段很长的时间。)所以我想知道的是......在Haskell的历史中,语言是否有任何重大的设计变更?或者所有变化都相对较小?在某个地方我可以找到这些列表,而不是坐下来阅读每个版本的Haskell报告试图发现差异吗?

2 个答案:

答案 0 :(得分:27)

语言的历史,包括主要里程碑和设计决策,在

中有描述
@INPROCEEDINGS{Hudak07ahistory,
    author = {Paul Hudak and John Hughes and Simon Peyton Jones and Philip Wadler},
    title = {A history of Haskell: Being lazy with class},
    booktitle = {In Proceedings of the 3rd ACM SIGPLAN Conference on History of Programming Languages (HOPL-III},
    year = {2007},
    pages = {1--55},
    publisher = {ACM Press}
}

答案 1 :(得分:12)

Dons给出的参考资料在结束时具有优异的权威性和权威性。这里有一些我最喜欢的东西 - 其中包括规范中的内容以及规范中没有正式的内容,但我认为GHC的非实验性部分,其他编译器也经常瞄准提供。这还包括类型和我们现在认为是标准的其他特性,但并非总是如此,但它们可以纯粹作为库存在。

  • 分层模块
  • 单子
  • IO Monad
  • 注释
  • 外部函数接口
  • 多参数类型
  • 不精确的例外
  • 可输入和数据
  • 可扩展的例外
  • 功能依赖
  • 类型函数
  • Concurrent Haskell
  • STM
  • GADTs
  • 伟大的单形态灾难(即失去monad理解,专门用于列表的地图等)
  • Applicative and Traversable
  • 箭头/箭头表示法
  • MonadFix