9
是否可以使用數字參數創建一個類型?數字類型簽名
也就是說,如果我想創建一個類型整數與一固定位寬:
newtype FixedWidth w = FixedWidth Integer
addFixedWidth :: FixedWidth w -> FixedWidth w -> FixedWidth (w+1)
mulFixedWidth :: FixedWidth w -> FixedWidth w -> FixedWidth (2*w)
這樣的類型檢查只允許FixedWidth
S上的相同類型的被相加或相乘,也確定結果的正確精度。
我知道你可以做這樣的事情:
data Nil = Nil
data Succ x = Succ
addFixedWidth :: FixedWidth w -> FixedWidth w -> FixedWidth (Succ w)
和代表人數4爲,但是這是令人難以置信的醜陋。我還需要弄清楚如何爲乘法結果類型附加兩個Succ
。
你的意思是7.0.4? – pat 2011-06-04 22:48:01