【问题标题】:custom Prelude module -- bad idea?自定义 Prelude 模块——坏主意?
【发布时间】:2012-12-01 01:32:54
【问题描述】:

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

优点:

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

  • 不用写“导入前奏隐藏(catch)”。

【问题讨论】:

  • 一个明显的缺点是可读性。人们期望 Prelude 函数就是Prelude 函数,除非明确隐藏。如果没有hiding (map),遇到一个不普通的map,听起来很不舒服。
  • 我在一些项目中使用basic-prelude。我认为为每个项目定制前奏可能太过分了,但如果有什么东西可以流行起来,我会支持的。
  • @singpolyma 感谢basic-prelude 的概念!

标签: haskell


【解决方案1】:

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

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

此规则的例外是在开发嵌入式领域特定语言时。在那里,制作自定义 Prelude 完全是一个好主意,这也是为什么可以首先重新定义 Prelude(和内置语法)的原因。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多