0
如何讓GHCI解釋爲什麼以下幾點:GHCI可以用來解釋強制嗎?
*Lib> sum Nothing
0
即使編譯?不知何故,有沒有Monoid
?這不是簽名!
*Lib> :i Foldable
class Foldable (t :: * -> *) where
...
maximum :: Ord a => t a -> a
minimum :: Ord a => t a -> a
sum :: Num a => t a -> a
product :: Num a => t a -> a
-- Defined in ‘Data.Foldable’
instance Foldable [] -- Defined in ‘Data.Foldable’
instance Foldable Maybe -- Defined in ‘Data.Foldable’
instance Foldable (Either a) -- Defined in ‘Data.Foldable’
instance Foldable ((,) a) -- Defined in ‘Data.Foldable’
*Lib> :i Num
class Num a where
(+) :: a -> a -> a
(-) :: a -> a -> a
(*) :: a -> a -> a
negate :: a -> a
abs :: a -> a
signum :: a -> a
fromInteger :: Integer -> a
-- Defined in ‘GHC.Num’
instance Num Word -- Defined in ‘GHC.Num’
instance Num Integer -- Defined in ‘GHC.Num’
instance Num Int -- Defined in ‘GHC.Num’
instance Num Float -- Defined in ‘GHC.Float’
instance Num Double -- Defined in ‘GHC.Float’
*Lib> sum Nothing
0
我無法回答你關於自省的問題,但我可以指出[this](https://hackage.haskell.org/package/base-4.8.1.0/docs/src/Data.Foldable.html #line-218)是你潛在問題背後的原因:) – hobbs
(實際上你提供的':i'輸出是「Instance Foldable Maybe - Defined in'Data.Foldable'」)。看到它是'Maybe'(如果你不知道的話)是否可以完成這項工作?) – hobbs
你爲什麼不用''sum sum'來看'sum'的類型。這將表明它必須具有'Foldable'實例,並且您已經弄清楚''Foldable'的'Maybe'實例。 – Sibi