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

时间:2012-11-30 16:44:20

标签: haskell

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

优点:

  • 无需在大型项目中重复导入“Common”模块。

  • 无需编写“import Prelude hide(catch)”。

1 个答案:

答案 0 :(得分:9)

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

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

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

一定要有自己的附加模块,但不要覆盖Prelude。