Haskell/GHCi - 从不同目录加载模块

标签 haskell ghci haskell-platform

我的 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/GHCi - 从不同目录加载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6606045/

相关文章:

haskell - 如何使用不依赖 hackage 的自定义版本的依赖项构建沙盒 cabal 项目(例如从 github checkout )

haskell - Haskell 中有 pretty-print (或显示)抽象吗?

haskell - 为什么 Haskell 的 Data.Vector 不是 Traversable 的实例?

haskell - ghci 自引用赋值

haskell - 为什么 Haskell 平台无法在 OS X 上安装?

windows - 如何更改ghc的路径?

haskell - 为什么我收到 "Equations for ... have different numbers of arguments"消息?

haskell - 使用选项 -fexternal-interpreter -prof 启动 ghci 时出错

haskell - 在需要 LANGUAGE CPP 的模块上运行 ghci

haskell - Haskell 中的并发 : What if single thread but set +RTS -N