Haskell核心语言非常简单。来自面向对象的背景,主要困难是适应纯功能范式。
在学习“基础” Haskell时,我一直将语言扩展视为CS人士的玩具或作为该语言的未来版本的实验(例如from future import ???
python)。
但是,当我开始研究诸如Yesod之类的Web框架时,我发现许多源文件需要3到4个扩展名。有些看起来很简单(StringOverload)。其他的确实令人生畏(GADT,Type Famillies,Template Haskell)。他们的文档链接到研究论文,这对于那些希望“仅仅”学习一个新图书馆的人来说是很恐怖的。
是否有必要学习GHC语言扩展才能在Haskell中发挥作用?如果您要雇用Haskell开发人员进行生产应用程序,您会要求获得这些知识吗?
另请参阅: stackoverflow.com/a/10849782/894284