我想從幾個自定義類(稱爲Monomial和Polynomial)的Num聲明中提取一些樣板。而不是寫作Haskell默認超類實例
instance Num (Monomial) where
f - g = f + (negate g)
abs _ = undefined
有沒有辦法解決這個問題?我碰到default superclass instances和一些所謂來到「the strathclyde haskell enhancement」如果執行這些可能讓我喜歡寫東西,
class SimpleNum a => Num a where
(+) :: a -> a -> a -- standard ring stuff
(*) :: a -> a -> a
one :: a
zero :: a
instance Num (SimpleNum a) where
f - g = f + (negate g)
abs _ = undefined
什麼是處理這個問題通常/簡單的方法?
也許這是部分民不是很好的設計的問題,也就是說,它應該是AbelianGroup =>戒指=>民... – gatoatigrado 2011-05-03 03:30:08
這其中一部分,但是我們不能根據更具體的類型成員的方式來默認使用較不具體的類型類的方法,所以這樣做也會太吸引:-(儘管至少我們的代碼不會必須有所有這些無端的底部... – SamB 2011-05-03 04:31:04
SHE *是*實現。我不知道這個功能是否,但SHE是一個真正的預處理器,你可以使用。 – luqui 2011-05-03 06:54:19