如何构建一个Haskell项目?
我目前正在尝试使用测试驱动开发方法来做一个Haskell项目。 在Java中,我们可以创建一个包含src和bin文件夹的结构良好的项目,然后使用JUnit进行单元测试的主文件夹和测试文件夹。 我只是想知道是否有一种标准的方法来在Haskell中获得这样的结构? 源文件夹的二进制文件夹,源文件夹中的两个文件夹之一用于测试主源文件夹。
现代的答案是使用Haskell工具堆栈。 这将使用理智默认值为您构建项目。
我一直在参考Haskell项目的结构和如何编写一个Haskell程序,该程序阐明了社区或多或少似乎遵循的一些默认值。 到目前为止,它对我来说效果很好,但我的项目还没有很大规模。
Haskell项目的结构中的建议听起来与您在文章中列出的内容类似,只需进行一些小的修改,例如测试文件夹与src文件夹位于同一目录中。
编辑:
cabal init
将为您生成一个最小金额,包括具有相关依赖关系的cabal文件,如果您至少有任何带有导入的文件。 这是一个很好的开始,但只是你正在寻找的一部分。
理想情况下,随着项目的增长,cabal文件和目录层次结构将自动保持最新,但我不知道任何公开的工具都可以做到这一点。 这也许是我有一天的名单,因为我相信它对很多人来说都是如此。
-odir
和-hidir
可以和ghc一起使用,将* .o和* .hi文件放在不同的目录中。 您可以在GHC用户指南关于单独编译的章节中阅读更多内容)
EDIT2:
其他相关/重叠的职位:
上一篇: How to structure a Haskell project?
下一篇: Struggling with using pure functional programming to solve an everyday problem