Haskell 在另一个目录中导入模块的语法是什么?
我刚开始使用 Haskell,想练习用 HUnit 编写简单的函数 TDD 风格。不过,我无法弄清楚如何构建我的文件。 HUnit 附带的示例似乎是一个平面目录结构。
我希望将测试和 HUnit 代码放在与实际代码不同的文件夹中。我将不胜感激一个快速示例导入语句和关于如何构建我的文件的建议。
如果重要的话,我现在正在使用 GHCi 和 NotePad++ 进行编码。
最佳答案
你实际上并没有从 Haskell 源代码中做到这一点。相反,您告诉编译器在哪里查找。通常的方法是在 .cabal 文件中。见 the cabal user guide详情。您需要“hs-source-dirs”参数。
或者,您可以将路径直接传递给编译器。但是,Cabal 是更好的方法。
“hs-source-dirs”参数中的每个路径名指定模块层次结构的根。基本上,如果您导入一个名为“Data.Foo.Bar”的模块,那么编译器会在“hs-source-dirs”给出的每个目录中查找具有相对路径名“Data/Foo/Bar.hs”的文件并导入第一个它找到的一个。
关于haskell - 在子目录中导入模块的 Haskell 语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5034685/