题
因为我学习Haskell,我看看,有很多的 语言扩展 用在现实生活中的代码。作为一个初学者,我应该学会使用它们,或者我应该避免它们的成本?我看到它裂的兼容性Haskell98和限制代码很多GHC只。然而,如果我浏览包Hackage,我看到他们中的大多数是GHC仅无论如何。
那么,什么是一个态度的社会对使用语言扩展?
如果使用的扩展是好的,我怎么能分辨的扩展,我可以用"安全"(那些可能成为下一个Haskell标准)从那些主要是"实验"?例如,我想, -XDisambiguateRecordFields 是好的和有用的,但是它有可能支持在未来?
解决方案
有一些GHC扩展过很好的生活。在我最喜欢的是
- 多参数的类型
- 范围的类型变量
- 更高级类型
- 广义的代数数据类型(GADTs)
这些真正重要之一是多参数类型的课程。
一些GHC的扩展都非常投机性的和试验性的,你可能想要谨慎使用。一个好的方法来确定一个稳定和信任的扩展是要看它是否将包含在 哈斯克尔总理, ,这是希望的后续Haskell98.
我的第二唐*斯图尔特的建议,即每一个扩展应使用标记 LANGUAGE
pragma在来源文件。 不不 启用扩展使用命令行的选择。
不隶属于 StackOverflow