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 に答える