3

我试图从 Haskell 模块中仅导出名称的子集,但 ghci 很高兴地让我甚至可以访问隐藏的名称。

module Hiding (shown, calc) where

calc = shown * hidden

shown :: Int
shown = 3

hidden :: Int
hidden = 2

但是当在 ghci 中尝试这个时,我得到:

Prelude> :l Hiding.hs 
[1 of 1] Compiling Hiding           ( Hiding.hs, interpreted )
Ok, modules loaded: Hiding.
*Hiding> hidden
2

我究竟做错了什么?

(编辑:为了它的价值,我在 Arch Linux 上使用 ghci 6.12.3)

4

2 回答 2

5

看起来 GHCi 正在加载您的模块供您检查,即将您置于模块的范围内。两个提示是提示*Hiding>和您访问隐藏功能的事实。

编辑:
到此为止:http ://www.haskell.org/ghc/docs/latest/html/users_guide/interactive-evaluation.html#id3045728

于 2010-12-09T13:07:47.627 回答
0

在我看来,你做了正确的事。如果您尝试从另一个模块引用该模块,我敢打赌hidden拒绝工作。可能是 GHCI 无所不知 :)

于 2010-12-09T12:55:51.940 回答