我正在哈斯克爾寫一個蛇遊戲。這些都是一些事情,我有:我應該在Haskell中製作模塊應該多少?
- 一個
Coord
數據類型 - 一個
Line
數據類型 - 一個
Rect
數據類型 - 一個
Polygon
型類,它可以讓我得到一個Rect
作爲系列行([Line]
)。 - 的
Impassable
類型的類,讓我得到了Line
一系列COORDS([Coord]
),這樣我可以檢測其它Impassable
S之間的衝突。 - A
Draw
我想繪製到屏幕(HSCurses)的任何類型的類。 - 最後,我使用QuickCheck,因此我想爲許多這些事情聲明
Arbitrary
實例。
目前我有很多這些在單獨的模塊,所以我有很多小模塊。我注意到我必須爲它們導入很多它們,所以我有點想知道點。
我對Arbitrary
實例特別困惑。當我使用-Wall
時,我收到有關孤立實例的警告,但當我將這些實例集中在一個測試文件中時,我的理解是,我可以通過將這些實例放入與定義數據類型的模塊相同的模塊來避免該警告,但隨後我需要到import Test.QuickCheck
所有這些模塊看起來很愚蠢,因爲只有在構建測試可執行文件時才需要QuickCheck。
任何有關QuickCheck的具體問題的建議將受到讚賞,關於如何/在哪裏將程序劃分爲模塊的更一般問題的指導將得到讚賞。
有下載的數量和反向依賴關係排名的鏈接在這裏:http://stackoverflow.com/questions/3663550/which-haskell-package-for-json/3663601#3663601 – 2010-10-23 01:32:46