【问题标题】:How has Haskell changed?Haskell 发生了怎样的变化?
【发布时间】:2012-07-03 00:20:09
【问题描述】:

当我第一次学习 Haskell 时,Haskell '98 是官方发布的语言规范。今天,该规范是 Haskell 2010。(我不得不承认,我真的很难记住这些差异到底是什么。)

现在 Haskell 已经存在了 很长时间。 (嗯,在计算方面它已经很长时间了。)所以我想知道的是......在 Haskell 的历史上,该语言是否有任何重大的设计变化?还是所有的变化都相对较小?有没有什么地方我可以找到这些列表,而无需坐下来阅读 Haskell 报告的每个版本来试图找出差异?

【问题讨论】:

  • wiki page 上有一个非常简短的摘要,这也将我们引向 Haskell 2010 release announcement,其中包含有关该版本的更多信息。
  • 类型系统已经大大扩展。事实上的 Haskell 标准是 GHC,它有各种各样的语言扩展——其中许多现在或多或少是标准的。
  • Haskell 在 H98 和 Haskell 2010 之间没有太大变化。Glasgow Haskell 在这段时间内发生了很大变化。
  • 是的,GHC 实现了所有厨房水槽,这已不是什么秘密。 ;-) 我专门询问了 official 语言设计。例如,我收集了原始的 Haskell 没有单子。所以这是一个大问题。类型类也是如此。看起来只有这些才是真正巨大的......
  • 为了更新@huon 4 年前所说的内容,现在有一个关于差异的 wiki 页面:wiki.haskell.org/Haskell_2010

标签: haskell


【解决方案1】:

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

中进行了描述
@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}
}

【讨论】:

  • 看起来这是目前编写的最佳信息来源——当然,由于其他原因,它也是一本有趣的书。所以我会接受这个答案。
【解决方案2】:

Dons 给出的参考资料非常出色且具有权威性,直至其结束。这是我脑海中浮现的一些东西——包括规范中的内容以及规范中未正式包含但我认为其他编译器也经常针对的 GHC 的非实验部分的内容提供。这还包括类型类和其他我们现在认为是标准但并非总是如此但可以纯粹作为库存在的功能。

  • 分层模块
  • 单子
  • IO 单子
  • 做符号
  • 外部函数接口
  • 多参数类型类
  • 不精确的异常
  • 可键入和数据
  • 可扩展的异常
  • 函数依赖
  • 类型函数
  • 并发 Haskell
  • STM
  • GADT
  • 大单态性灾难(即失去 monad 理解、映射专门到列表等)
  • 适用性和可遍历性
  • 箭头/箭头符号
  • MonadFix

【讨论】:

猜你喜欢
  • 2011-03-19
  • 2020-06-18
  • 1970-01-01
  • 2015-08-11
  • 1970-01-01
  • 1970-01-01
  • 2017-12-20
  • 2014-10-07
  • 1970-01-01
相关资源
最近更新 更多