我應該如何爲程序命名我的Haskell模塊而不是庫和將它們組織在一個層次結構中?Haskell模塊命名約定
我正在製作一個名爲Luminosity的光線追蹤器。首先,我有這些模塊:
Vector Colour Intersect Trace Render Parse Export
每個模塊都很好,但我覺得這是缺乏組織。
首先,我把每個模塊放在Luminosity
之下,所以例如Vector
現在是Luminosity.Vector
(我認爲這是haskell程序的標準?)。
然後我想:Vector和Color是獨立的,可以重用,所以它們應該分開。但是它們太小而無法變成圖書館。
他們應該到哪裏呢?已經(在hackage上)Data.Vector
和Data.Colour
,所以我應該把它們放在那裏?或者這會引起混淆(即使我將它們與其他本地進口分組在一起)?如果不在那裏,應該是Luminosity.Data.Vector
還是Data.Luminosity.Vector
?我很確定我已經看到了兩個使用過,雖然也許我碰巧看到一個使用非傳統結構的項目。
我也有一個簡單的TGA圖像輸出器(Export
),它可以獨立於Luminosity。看起來正確的位置是Codec.Image.TGA
,但是再次,Luminosity
應該在那裏,如果是的話,在哪裏?
這將是很好,如果Structure of a Haskell project或其他維基解釋這一點。
如果您想製作可重複使用的代碼,請將其打包到庫中。大小並不重要。 – 2012-07-21 19:06:24
Vis可重用模塊用於幾何圖元 - 代數類型,矢量和顏色非常容易定義,因此對於認真使用Haskeller而言,希望自己定義它們而不是依賴另一個庫。然後他們控制他們的表示,不必擔心依賴性問題(API變更,作者將要失蹤等) – 2012-07-22 06:11:33