我应该使用GHC Haskell扩展吗?
在我学习Haskell时,我发现在现实生活中有很多语言扩展使用。 作为初学者,我应该学会使用它们,还是应该不惜一切代价避免它们? 我发现它破坏了与Haskell 98的兼容性,并且仅将代码限制在几乎GHC。 但是,如果我在Hackage上浏览软件包,我发现它们中的大多数只有GHC。
那么,社区对使用语言扩展的态度如何?
如果扩展的使用是可以的,那么我怎样才能区分我可以“安全”使用的扩展(可能成为下一个Haskell标准的一部分)和那些大部分是“实验性”的扩展? 例如,我想-XDisambiguateRecordFields很好用,但它可能会在将来得到支持吗?
有一些GHC扩展是太好了,没有生活。 我最喜欢的是
其中最重要的是多参数类型类。
一些GHC扩展非常具有推测性和实验性,您可能需要谨慎使用。 确定一个稳定可信的扩展的一个好方法是看看它是否被纳入Haskell Prime,Haskell Prime希望成为Haskell 98的继任者。
我第二个唐斯图尔特的建议是,每个扩展应该使用源文件中的LANGUAGE
杂注标记。 不要使用命令行选项启用扩展。
是的,根据需要使用扩展名。
但一定要有意识地启用它们 - 只有当你决定需要它们时才会启用它们。 (例如)通过{-# LANGUAGE Rank2Types #-}
以每个模块为基础执行此操作。
一般来说,人们使用GHC扩展的次数相当多,因为它们非常有用,而Haskell 98则相当老旧。 一旦有更新的标准,人们可能会更加努力地坚持下去。
您可以在这里找到下一个标准提案的状态。
链接地址: http://www.djcxy.com/p/43161.html