我刚刚意识到我可以定义自己的Prelude模块并小心地控制它的输出.这被认为是不好的做法吗?
好处:
无需在大型项目中重复导入"Common"模块.
无需编写"import Prelude hidden(catch)".
一般来说,这是个坏主意,因为你最终会用自己的习语编写代码,这些代码不容易被其他人维护.
要与他人交流,您需要一种共享的符号语言.这Prelude是我们的核心语言,所以如果你重新定义它,就会产生混淆.
此规则的例外是在开发嵌入式特定于域的语言时.在那里,制作一个自定义Prelude完全是一个好主意,并且确实可以在一开始就重新定义Prelude(和内置语法).
无论如何都有自己的附加模块,但不要覆盖Prelude.