我们知道,fmap是fmap :: Functor f => (a -> b) -> f a -> f b和sum是sum :: (Num a, Foldable t) => t a -> a,但下面的代码让我困惑.
fmap
fmap :: Functor f => (a -> b) -> f a -> f b
sum
sum :: (Num a, Foldable t) => t a -> a
> :t (fmap sum Just) (fmap sum Just) :: Num b => b -> b > fmap sum Just 3 3
为什么?
haskell functor foldable
foldable ×1
functor ×1
haskell ×1