haskell - 在子目录中导入模块的 Haskell 语法是什么?

标签 haskell hunit

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/

相关文章:

haskell - yesod - 获取 POST "Content-type: application/json"的请求正文

class - 如何定义像 "data MyMath = MyNum Num"这样的抽象数据类型?

haskell - 获取里面的函数名

haskell - 是否可以在 HUnit 中断言错误情况?

multithreading - 简单的多线程Haskell占用大量内存

haskell - 从字符串和总和中获取偶数

Haskell 无法将预期类型 [char] 与实际类型 IO 匹配

unit-testing - 如何使用 HUnit 和 Cabal 进行自动化测试?

haskell - 是否可以在 IO 以外的单子(monad)中将 HUnit 与测试框架一起使用?

haskell - 无法将 HUnit 导入 ghci