【发布时间】:2014-05-08 10:10:51
【问题描述】:
我知道导入限定名称有利于避免名称冲突。我纯粹是从可读性的角度来问的。
不熟悉haskell标准库,在阅读haskell代码(主要来自在线书籍和教程)时,我发现一件烦人的事情是,当我遇到一个函数时,我不知道它是否属于导入的模块或将稍后由用户定义。
来自 C++ 背景,使用命名空间调用标准库函数通常被视为一种好习惯,例如 std::find。 haskell 也一样吗?如果不是,那么您如何克服我上面提到的问题?
【问题讨论】:
-
C++ 中的问题是,如果你使用不合格的调用,ADL 可能会搞砸你。在 Haskell 中,您得到的最糟糕的情况是模棱两可的错误,除非一个库完全删除该函数,而另一个库添加它。在这种情况下,您可能会收到类型错误 - 如果没有,这些函数很可能还是兼容的。
标签: haskell