haskell - 正确导入模块,其中某些定义仅对限定名称可见

标签 haskell coding-style

假设我有一个模块 A,定义了名称 bc

现在我希望以某种方式导入 A,并且应该可以访问以下名称:

  • A.b
  • A.c
  • c

其中隐藏了非限定名称 b

我尝试的方法是通过两种方式导入A两次:

import A hiding (b)
import qualified A (b)

但是好像没有达到上面描述的效果。那么正确的方法是什么?

最佳答案

你应该能够做到

import A (c)
import qualified A

或者

import A hiding (b)
import qualified A

它应该只允许您访问c,然后使用限定语法访问A内的所有内容。如果您在 GHCi 中对此进行测试,请记住 GHCi 有一些额外的特殊内容,以允许它在从源代码加载的模块内进行更多访问,因为它的主要用途是探索和调试。

关于haskell - 正确导入模块,其中某些定义仅对限定名称可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26738575/

相关文章:

Haskell - 导出数据构造函数

haskell - Haskell 的 $-Operator 的定义

scala - 此 Scala 代码的功能样式

python - Python 中的每类常量

haskell - Haskell 中关于 if-then-else 缩进的奇怪错误

haskell - Hakyll - 使用带有数据的 makeItem 在 HTML 中创建列表

PHP - 过度评论?

javascript - typeof !== "undefined"与 != null

Haskell 动态数据类型更改

java - 需要有关概念 "Do Not Repeat Yourself"编码实践的建议