2012-06-08 53 views
0

我正在尋找2d座標向量的簡單表示法。我的第一個想法是一個簡單的(c, c)元組,但這不符合我的需要。2d座標向量的設計

這是我想要的東西:

  • 實例函子與應用型的
  • 能力有不同的類型具有相同的語義(例如ScreenCoordGameCoord)。
  • 簡單的數據構造(例如ScreenCoord c c
  • 能力超過Coord編寫通用代碼。

我不確定如何做到這一點。我試過的所有東西都要求重複instance代碼來獲得不同的類型,或者它有很長的數據構造函數,如ScreenCoord (Coord c c),這似乎是不必要的。

這裏的理想表現是什麼?

回答

2

您可能會感興趣Tensorvector-space

Vertex2等人從頂點家人表示屏幕(未矢量)上的點。 vector-space-opengl提供vector-space的適當實例。

+0

感謝您的鏈接,但是如何創建'Vertex2'的'獨特同義詞'?我不確定'不同的同義詞'是否是正確的術語。 – Pubby

+1

@Pubby'newtype'是要求類型檢查器強制區分其他相同類型的機制。 –

+0

我不確定我瞭解你。如果要包裝現有數據併爲其創建不同的實例,則有'newtype'聲明。有[NewtypeDeriving](http://hackage.haskell.org/trac/haskell-prime/wiki/NewtypeDeriving)語言擴展。有[newtype](http://hackage.haskell.org/package/newtype)包使用'pack' /'unpack'。你可以創建自己的構造函數。 – ony