是否有可能将两个模块作为GHCI的顶层加入?

时间:2017-06-28 21:04:54

标签: haskell

我发现改变:load的顺序或路径会改变可见的绑定,同时调试多个模块似乎是不可能的。每次我:load时都会丢失绑定,这一点尤其令人讨厌。

*-form"的措辞似乎只有the most recently successfuly loaded module中的一个模块。尽管如此,顶级模块似乎是:load的第一个参数。

1 个答案:

答案 0 :(得分:3)

当我开发并且我想在GHCi中同时使用两个或更多模块时,这就是我的工作。假设我想使用Control.MonadControl.Lens,以及我正在编程的我自己的模块Main

> :m Control.Lens Control.Monad

现在,Control.LensControl.Monad都在范围内。

现在,我似乎忘记添加Main,因此我可以轻松添加一个+来添加模块。这非常方便,我通常总是使用它,我只是向您展示上述内容,因此您可以看到如何一次导入多个模块。

> :m + Main

或者,正如我刚才所描述的那样,我通常会这样做:

> :m + Main Control.Lens Control.Monad

我认为默认情况下通常会包含Main,但是你会得到图片:)

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

快乐的Haskelling!