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