【问题标题】:How to structure a Haskell project?如何构建一个 Haskell 项目?
【发布时间】:2013-01-03 11:26:56
【问题描述】:

我目前正在尝试使用测试驱动开发方法来做一个 Haskell 项目。在 Java 中,我们可以创建一个包含 src 和 bin 文件夹的结构良好的项目,然后有 main 和 test 文件夹用于使用 JUnit 进行单元测试。我只是想知道是否有一种标准方法可以在 Haskell 中获得这样的结构?源文件夹 二进制文件夹,源文件夹中有两个文件夹,一个用于测试,一个用于主源。

【问题讨论】:

    标签: unit-testing testing tdd haskell


    【解决方案1】:

    我的参考始终是Structure of a Haskell projectHow to write a Haskell program,它们说明了社区或多或少遵循的一些默认设置。到目前为止,它对我来说效果很好,但我的项目还不是很大。

    Structure of a Haskell project 中的建议听起来与您在帖子中概述的内容相似,只是做了一些小的修改,例如 testing 文件夹与 src 文件夹位于同一目录中。

    编辑:

    cabal init 将为您生成最少数量的文件,包括具有相关依赖项的 cabal 文件,如果您至少有任何包含导入的文件。这是一个很好的开始,但只是您正在寻找的一部分。

    理想情况下,随着项目的增长,cabal 文件和目录层次结构将自动保持最新,但我不知道有任何公开的工具会这样做。它在我可能的一天清单上,因为我相信它适用于许多其他人。

    -odir-hidir 可以与 ghc 一起使用,将 *.o 和 *.hi 文件放在不同的目录中。你可以在GHC user guide's section on separate compilation阅读更多)

    编辑2:

    其他相关/重叠的帖子:

    【讨论】:

    • 感谢您的回复。在java中,我可以使用maven自动生成所有必要的文件夹,而在ruby on rails中,命令“rails new ProjectName”也会这样做,我只是在想,因为这是一项常见任务,也许Haskell中有一些命令这样做。
    • 另外,当使用 ghc 编译 .hs 文件时,最好的编译方法是什么,让所有 .hs 在一个文件夹中,所有中间文件(.o .hi 等)在另一个文件夹中文件夹和另一个文件夹中的执行文件?
    • 编辑了回复的评论,因为它很长并且受益于格式化。
    【解决方案2】:

    对此的现代答案是使用The Haskell Tool Stack。这将使用合理的默认值为您构建项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-16
      • 2020-08-29
      • 1970-01-01
      • 2014-06-05
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多