![]() |
1
12
而不是请求
全部的
GHC扩展,使用
允许在同一列表上并行迭代。问题是哈斯克尔98标准中没有定义并行理解。它们可以很容易地用
扩展本身并不坏——许多标准库都使用某种类型的扩展。许多人正在考虑加入 Haskell' 哈斯克尔标准的下一次迭代。一些扩展,例如gadt,通常在用户编写的库中使用。其他的,如模板或不连贯的实例,可能不是一个好主意,除非你 真的? 知道你在做什么。 中列出的任何扩展名 HaskellExtensions wiki page 有了两个或更多编译器的支持,使用起来可能是安全的。 |
![]() |
2
6
GHC绝对是无处不在的-我认为它是最常用的haskell编译器,所以它可能不会造成太多的麻烦。不过,您应该始终尝试编写符合标准的代码——可能不是针对个人项目,而是针对OSS或Work项目。 什么事都有可能发生,对吧?所以在项目的中途编译器可能会突然发生变化。 对于OSS,不同的人使用不同的编译器——例如,拥抱也是很常见的。 |
![]() |
3
6
使用扩展是可以的。特别用-xfoo或语言foo标记它们。 您选择使用哪些扩展取决于您自己,您可能希望坚持那些列在haskell prime中的扩展。 |
![]() |
4
3
你想要的是:
这是因为列表理解实际上不适用于自引用列表。此外,尽管温室气体排放量更受欢迎, HUGS 通常会产生更清晰的错误信息。 |
![]() |
5
1
我打算建议使用
所以除了可移植性之外,还应该考虑可读性。使用不常见的扩展可能会使代码更难阅读(对于不熟悉扩展的人)。
一些扩展对可读性没有任何负面影响(结果代码很明显),比如
另一些则要求读者熟悉新的语法,并理解这种语法的含义。例如:
+1 DONS关于使用计划中包含的内容的建议 Haskell Prime .
|