我試圖回答這個問題: 「鑑於代數數據類型類型的類實例重新定義
data Maybe a = Nothing | Just a
選擇正確的實例聲明表明這些類型構造
Maybe
是Monad
。」 (取自這裏:「DelftX:FP101x介紹函數編程」我想ANWER它是由編譯依次在每個potencial答案,例如方式,這一個:
instance Monad Maybe where return x = Just x Nothing >>= _ = Nothing (Just x) >>= f = f x
,因爲它是在前奏中已經定義我不能編譯
HwEx9.hs:16:10: error: Duplicate instance declarations: instance Monad Maybe -- Defined at HwEx9.hs:16:10 instance Monad Maybe -- Defined in `GHC.Base'
我的問題是:?我如何編譯
最簡單的方法:定義你自己的'Maybe'樣型。 – melpomene
沒有辦法避免爲給定類型導入類型類實例。 (另見https://stackoverflow.com/a/8731340/6476589) –
將其更改爲MyMaybe? – immibis