【发布时间】:2015-03-05 21:59:33
【问题描述】:
我一直在用 Haskell 快速编写一些代码,并使用了一个危险的非总函数,即fromJust(我希望输入有一个值)。稍后我会考虑我要使用哪种错误处理方式。
GHC 能否帮助我确保我已经摆脱了危险的非全部函数的所有使用(如 fromJust 或 head,它们可能会崩溃),在它们所在的位置给我警告。
【问题讨论】:
-
GHC 开发人员目前正在讨论偏倚推断。同时,您最好的选择可能是隐藏这些函数的导入,并(以确保它们真正被隐藏)自己重新定义它们:
fromJust = ()应该可以解决问题。 -
即使只是在一个模块中重新定义它们,作为“打开警告”的一种方式,您导入不合格。然后,您将收到一个歧义错误,指出您实际使用 Prelude 版本的任何地方(除非您当时符合条件,如
Prelude.fromJust)。但是,它对您从其他模块的合格导入中使用的部分功能没有帮助。
标签: haskell error-handling crash ghc compiler-warnings