2 つのモジュール (NecessaryModule1.hs と NecessaryModule2.hs を Haskell で outlinked としてロード: 現在のディレクトリ パスにすべてのファイルをロード)。次に、NecessaryModule2.hs をアンロードします。System.Plugins.Loadで「アンロード」機能を見つけましたが、 WinGHCiでは機能しませんでした。私が得たエラーメッセージは次のとおりです。
>unload NecessaryModule2
<interactive>:1:1: Not in scope: `unload'
<interactive>:1:8:
Not in scope: data constructor `NecessaryModule2'
私は試した
import System.Plugins.Load
しかし、それはうまくいきませんでした。上記の方法でモジュールをアンロードする方法はありますか?
-------------------------------------------------- --------------------------------------
[リカルドへの返答]
こんにちはRiccardo、私はあなたの提案を試しましたが、WinGHCiで動作させることができませんでした. 次のようなファイル NecessaryModule1.hs がありました。
module NecessaryModule1 where
addNumber1 :: Int -> Int -> Int
addNumber1 a b = a + b
「:cd」コマンドを使用してファイルの場所に移動し、次のことを行いました。
> :module +NecessaryModule1
<no location info>:
Could not find module `NecessaryModule1':
it is not a module in the current program, or in any known package.
これは正しいです?ありがとう[編集:修正については以下を参照]
-------------------------------------------------- --------------------------------------
[上に訂正]
上記が正しくない理由を説明するためだけに (Riccardo が説明したように)、次のことを行う必要があります。
次のようなファイル NecessaryModule1.hs があるとします。
--NecessaryModule1.hs
module NecessaryModule1 where
addNumber1 :: Int -> Int -> Int
addNumber1 a b = a + b
次に、次のことを行います。
> :load NecessaryModule1
[1 of 1] Compiling NecessaryModule1 ( NecessaryModule1.hs, interpreted )
Ok, modules loaded: NecessaryModule1.
> addNumber1 4 5
9
> :module -NecessaryModule1
> addNumber1 4 5
<interactive>:1:1: Not in scope: `addNumber1'