2013-01-20 19 views
30

Obecnie próbuję zrobić projekt Haskell za pomocą metodologii Test Driven Development. W Javie możemy stworzyć ładnie uporządkowany projekt zawierający foldery src i bin, a także foldery główne i testowe do testowania jednostkowego z JUnit. Zastanawiam się, czy istnieje standardowy sposób zdobycia takiej struktury w Haskell? Folder źródłowy do folderu binarnego, aw folderze źródłowym dwa foldery jeden do testowania jednego dla głównego źródła.Jak skonstruować projekt Haskell?

Odpowiedz

2

Nowoczesny Odpowiedź na to jest używać The Haskell Tool Stack. Spowoduje to uporządkowanie projektu przy użyciu rozsądnych wartości domyślnych.

24

Moje referencje to zawsze Structure of a Haskell project i How to write a Haskell program, które określają pewne wartości domyślne, które wydają się podążać za społecznością. Dla mnie dobrze się sprawdziło, ale moje projekty nie były jeszcze tak duże jak na razie.

Co jest zasugerowane w Structure of a Haskell project brzmi podobnie do tego, co nakreśliłeś w swoim poście z kilkoma drobnymi modyfikacjami, takimi jak folder testowy, w tym samym katalogu, co folder src.

Edit:

cabal init generuje minimalną ilość dla ciebie w tym pliku Cabal z odpowiednimi zależnościami, jeśli masz jakiekolwiek pliki z importu przynajmniej. To świetny start, ale tylko część tego, czego szukasz.

Idealnie, gdy projekt rośnie, plik cabal i hierarchia katalogów będą automatycznie aktualizowane, nie jestem jednak świadomy, że jakiekolwiek narzędzie zostanie udostępnione publicznie. Jest na mojej może jeden dzień lista, ponieważ jestem pewien, że jest dla wielu innych.

-odir i -hidir może być użyty z ghc do umieszczenia plików * .o i * .hi w oddzielnych katalogach. Możesz przeczytać więcej w GHC user guide's section on separate compilation)

Edit2:

innymi właściwymi/nakładających posty:

+0

Dzięki za odpowiedź. W java, mogę użyć programu maven do automatycznego generowania wszystkich niezbędnych folderów, aw ruby ​​na szynach polecenie "rails new ProjectName" zrobi to samo, po prostu myślę, ponieważ jest to typowe zadanie, może jest jakieś polecenie w Haskell to robi. – HHC

+0

Również podczas korzystania z ghc do kompilowania pliku .hs, jaki jest najlepszy sposób kompilacji i niech wszystkie .hs będą w jednym folderze wszystkie pliki pośrednie (.o .hi itp.) W innym folderze, a plik wykonawczy jeszcze kolejny folder? – HHC

+0

Zmieniono komentarz odpowiedzi, ponieważ był długi i korzystał z formatowania. – Davorak

Powiązane problemy