我是Haskell的初學者。現在,我試圖定義一個數據如下:如何在haskell中實現自定義數據的Functor實例
data Unsure a = Sure a |Error [Char]
deriving (Show)
然後試圖執行函子是這樣的:
instance Functor Unsure where
fmap f (Sure x) = Sure (f x)
fmap f (Error e) = Error e
在我看來,應該FMAP工作,一旦我實現了對函數對象不確定。所以,我可以使用FMAP做這樣的事情:
fmap (+3) (+100) Sure 1
結果應該是當然104,其實我得到了一個錯誤
•在約束非類型變量參數: Num(不確定a) (使用FlexibleContexts來允許) •當檢查推斷的類型 時:: a。 (Num(Unsure a),Num a)=>不確定一個
任何建議嗎?
爲什麼你認爲應該工作? –
我犯了一個錯誤,現在當我輸入fmap(+3)當然是1,它顯示了Sure 4。 – dannybaobei
其實我想要一個unbox的一般方法不確定,然後我可以做一些如fmap(==)100(當然100)。 – dannybaobei