1

假设我有一个文件 NecessaryModule.hs,它具有以下内部结构:

module NecessaryModule where

addNumber1 :: Int -> Int -> Int
addNumber1 a b = a + b

addNumber2 :: Int -> Int -> Int
addNumber2 a b = a + b

当我做 :

:load NecessaryModule

addNumber1 和 addNumber2 在当前范围内都可用。有没有办法隐藏函数 addNumber2 以便它可用于同一模块中的其他函数但当我以上述方式加载模块时不会加载?谢谢

-------------------------------------------------- --------------------------------------

[对纳米窃贼的回应]

我通过以下方式尝试了您的建议,但它对我不起作用。我有一个名为 test2.hs 的文件,如下所示:

--test2.hs
module Test2 (addNumber1) where

addNumber1 :: Int -> Int -> Int
addNumber1 a b = a + b

addNumber2 :: Int -> Int -> Int
addNumber2 a b = a + b

但是当我这样做时

:load test2 

然后我可以同时调用 addNumber1 和 addNumber2。我做错了什么吗?谢谢

4

1 回答 1

8

您只需在模块行上指定要导出的方法:

module NecessaryModule (addNumber1) where
....

如果您不指定该行,则默认情况下它包含所有内容。

于 2012-04-24T10:33:48.270 回答