0
我正在尋找2d座標向量的簡單表示法。我的第一個想法是一個簡單的(c, c)
元組,但這不符合我的需要。2d座標向量的設計
這是我想要的東西:
- 實例函子與應用型的
- 能力有不同的類型具有相同的語義(例如
ScreenCoord
和GameCoord
)。 - 簡單的數據構造(例如
ScreenCoord c c
) - 能力超過
Coord
編寫通用代碼。
我不確定如何做到這一點。我試過的所有東西都要求重複instance
代碼來獲得不同的類型,或者它有很長的數據構造函數,如ScreenCoord (Coord c c)
,這似乎是不必要的。
這裏的理想表現是什麼?
感謝您的鏈接,但是如何創建'Vertex2'的'獨特同義詞'?我不確定'不同的同義詞'是否是正確的術語。 – Pubby
@Pubby'newtype'是要求類型檢查器強制區分其他相同類型的機制。 –
我不確定我瞭解你。如果要包裝現有數據併爲其創建不同的實例,則有'newtype'聲明。有[NewtypeDeriving](http://hackage.haskell.org/trac/haskell-prime/wiki/NewtypeDeriving)語言擴展。有[newtype](http://hackage.haskell.org/package/newtype)包使用'pack' /'unpack'。你可以創建自己的構造函數。 – ony