NecessaryModule1 と NecessaryModule2 という 2 つのモジュールがあるとします ( Haskell : loading ALL files in current directory pathの記事で説明されているように)。次に、WinGHCi と GHCi の両方で次のことを確認しました。
> :load NecessaryModule1
[1 of 1] Compiling NecessaryModule1 ( NecessaryModule1.hs, interpreted )
Ok, modules loaded: NecessaryModule1.
> addNumber1 2 3
5
> :load NecessaryModule2
[1 of 1] Compiling NecessaryModule2 ( NecessaryModule2.hs, interpreted )
Ok, modules loaded: NecessaryModule2.
> addNumber1 2 3
<interactive>:1:1: Not in scope: `addNumber1'
つまり、NecessaryModule2 をロードすると、NecessaryModule1 からすべての関数が削除されます。
つまり、NecessaryModule1 と NecessaryModule2 を同時にロードできる唯一の方法は、3 番目のファイル (NecessaryModule1 と NecessaryModule2 の両方をインポートする) を使用してから、その 3 番目のファイルをロードすることでしょうか? (たとえば、Haskell の test.hs を参照してください: 現在のディレクトリ パスにすべてのファイルをロードしています) ありがとうございます。
-------------------------------------------------- --------------------------------------
[ギーコサウルスへの対応]
こんにちは、私が行っ:load NecessaryModule1
た場合、モジュールを MyMod.hs にロードします。
--MyMod.hs
module MyMod where
import Data.List
f x = sort x
では、どうすればこれを行うことができますか?In Haskell : unload module in WinGHCi Riccardo は:module
、モジュールが既にロードされていることを前提として説明しています。これは、複数のカスタム モジュールのロードを実現する唯一の方法は、:load
関数の 1 回の呼び出しでそれらをロードすることであるということですか? ありがとう。