運算元和準則的類定義
class Functor f where
fmap :: (a -> b) -> f a -> f b
看它的方法之一是,fmap
升降機值的函式到值的背景下 f
的功能。
Functor
的正確例項應該滿足仿函式定律,儘管編譯器不強制執行這些定律 :
fmap id = id -- identity
fmap f . fmap g = fmap (f . g) -- composition
fmap
有一個常用的中綴別名叫 <$>
。
infixl 4 <$>
(<$>) :: Functor f => (a -> b) -> f a -> f b
(<$>) = fmap