我的haskell应用程序具有以下目录结构:

src/
    utils/Utils.hs
    subsystem/Subsystem.hs
Subsystem模块导入Utils模块。我想在GHCi中手动测试此代码。

问题是GHCi似乎只在寻找'.'(当前目录)中可用的模块,因此我将Utils.hs复制到子系统文件夹中,并且能够手动测试Subsytem.hs。有一个更好的方法吗?例如,我想在src目录中启动GHCi,并让它在./utils./subsystem目录中搜索模块。我可以指定GHCi的模块路径吗?

最佳答案

您可以使用-i选项告诉GHCi在哪里搜索模块:

ghci Foo.Bar -isrc

这会将src/Foo/Bar.hs加载到GHCi中。这样,您还可以指定两个不同的目录,如下所示:
ghci Bar.hs -i.:config

它将在./和./config/中查找依赖项。

See the GHC user's guide for more information about the module search path

关于haskell - Haskell/GHCi-从不同目录加载模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6606045/

10-13 03:08