自定义Prelude模块 - 糟糕的主意?

Arj*_*uha 7 haskell

我刚刚意识到我可以定义自己的Prelude模块并小心地控制它的输出.这被认为是不好的做法吗?

好处:

  • 无需在大型项目中重复导入"Common"模块.

  • 无需编写"import Prelude hidden(catch)".

Don*_*art 9

一般来说,这是个坏主意,因为你最终会用自己的习语编写代码,这些代码不容易被其他人维护.

要与他人交流,您需要一种共享的符号语言.这Prelude是我们的核心语言,所以如果你重新定义它,就会产生混淆.

此规则的例外是在开发嵌入式特定于域的语言时.在那里,制作一个自定义Prelude完全是一个好主意,并且确实可以在一开始就重新定义Prelude(和内置语法).

无论如何都有自己的附加模块,但不要覆盖Prelude.