在GHCi中,':module'和'import'之间有什么区别?

时间:2017-06-13 21:07:08

标签: haskell ghci

在GHCi中,似乎有两种方法可以包含已安装的模块:

Prelude> :module Database.HDBC
Prelude Database.HDBC>

Prelude> import Database.HDBC
Prelude Database.HDBC>

这些之间有什么区别吗?如果没有,为什么重复命令?

我一直使用import,现在注意到Real World Haskell's databases chapter中使用的:module

1 个答案:

答案 0 :(得分:10)

来自GHCi docs

  

:module命令提供了一种方法来完成两件事情   完成普通的import声明:

     
      
  • :module支持模块上的*修饰符,它会打开模块的完整顶级范围,而不仅仅是其导出。
  •   
  • 可以使用语法:module -M从上下文中删除导入。 import语法是累积的(如在Haskell模块中),因此这是从范围中减去的唯一方法。
  •