Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 是否可以在GHCI中将两个模块作为顶级模块连接?_Haskell - Fatal编程技术网

Haskell 是否可以在GHCI中将两个模块作为顶级模块连接?

Haskell 是否可以在GHCI中将两个模块作为顶级模块连接?,haskell,Haskell,我发现,更改:load的顺序或路径会更改可见绑定,并且似乎不可能同时调试多个模块。这尤其令人恼火,因为每次我:load时都会丢失绑定 似乎在中只能有一个模块,如“”的措辞所示。尽管如此,顶层模块似乎是作为:load的第一个参数给出的,当我在开发时,我想在GHCi中同时使用两个或多个模块,下面是我要做的。假设我想使用Control.Monad和Control.Lens,以及我自己的模块,我正在用它进行编程,这个模块名为Main: > :m Control.Lens Control.Monad

我发现,更改
:load
的顺序或路径会更改可见绑定,并且似乎不可能同时调试多个模块。这尤其令人恼火,因为每次我
:load
时都会丢失绑定


似乎在中只能有一个模块,如“”的措辞所示。尽管如此,顶层模块似乎是作为
:load

的第一个参数给出的,当我在开发时,我想在GHCi中同时使用两个或多个模块,下面是我要做的。假设我想使用
Control.Monad
Control.Lens
,以及我自己的模块,我正在用它进行编程,这个模块名为
Main

> :m Control.Lens Control.Monad
现在
Control.Lens
Control.Monad
都在范围内

现在,我似乎忘记添加
Main
,所以我可以很容易地添加一个
+
,它将添加模块。这是如此方便,我通常总是使用它,我只是向您展示了上面的内容,以便您可以看到如何一次导入多个模块

> :m + Main
或者,我通常会做的,正如我刚才描述的:

> :m + Main Control.Lens Control.Monad
我认为默认情况下,
Main
通常包括在内,但您可以看到这样的画面:)

至于重新加载,我使用
:r
命令来重新加载,是的,绑定丢失可能会很糟糕,但通常我会将它们放入我正在编写的代码中,有时是暂时的,或者我使用操作系统的readline支持通过历史反循环“向上”查找以前的定义

哈斯凯林快乐

如果“*-form”是指提示符前的模块(即
A
*A>
中的“*-form”),则可以在加载
:m+*A
后的任何时候显式添加此类模块;“最近加载的模块”部分仅指GHCi在您执行
:load
后自动将最近加载的模块添加到上下文中的便利性。实际上,这似乎是传递给load的第一个模块,它会自动添加到上下文中,而不是最近加载的模块。我认为这是文件中的一个错误。无论如何,这与你的问题无关。