В настоящее время я пытаюсь выполнить проект Haskell с использованием методологии Test Driven Development. В Java мы можем создать хорошо структурированный проект, содержащий папки src и bin, тогда есть основные и тестовые папки для модульного тестирования с JUnit. Мне просто интересно, есть ли стандартный способ получить такую структуру в Haskell? Папка для источника - папка для двоичного кода, а в исходной папке - две папки для тестирования одного для основного источника.
Как структурировать проект Haskell?
Ответ 1
Современный ответ на этот вопрос - использовать The Haskell Tool Stack. Это будет структурировать проект для вас, используя нормальные значения по умолчанию.
Ответ 2
Моя ссылка всегда Структура проекта Haskell и Как написать программу Haskell, в которой указаны некоторые значения по умолчанию, которые, по-видимому, сообщают более или менее сообщество. Он работал хорошо для меня до сих пор, но мои проекты пока невелики.
Что предлагается в Структура проекта Haskell звучит аналогично тому, что вы наметили в своем посте, с несколькими незначительными изменениями, такими как тестирование папка находится в том же каталоге, что и папка src.
Edit:
cabal init
будет генерировать минимальную сумму для вас, включая файл cabal с соответствующими зависимостями, если у вас есть хотя бы файлы с импортом. Это отличное начало, но только часть того, что вы ищете.
В идеале по мере роста проекта иерархия файлов кэша и каталогов будет автоматически обновляться, я не знаю о каком-либо объявленном инструменте, который будет делать это. Это, возможно, в один день, поскольку я уверен, что это для многих других.
-odir
и -hidir
можно использовать с ghc для размещения файлов *.o и *.hi в отдельных каталогах. Вы можете прочитать больше в раздел руководства пользователя GHC по отдельной компиляции)
Edit2:
Другие соответствующие/перекрывающиеся сообщения: