Haskellの各種圏論概念への対応
Functor型クラス自体は圏論での関手
HaskellのFunctorはHask圏上の関手(functor) 圏論の基本的な概念はHask圏のものを持ってくればよさそう table:Hask圏
対象 Haskellの、カインドが*である型
射 Haskellの関数
型Aから型Bの関数 f :: A -> B
射の始域(dom) 関数の引数の型
射の終域(cod) 関数の戻り値の型
恒等射 id
射の合成 関数結合 (.)
f . id = id . f = f
Functor
※以下は古いFunctorの定義
code:haskell
class Functor (f :: * -> *) where
fmap :: (a -> b) -> f a -> f b
code:haskell
instance Functor Maybe where
fmap f (Just x) = Just (f x)
fmap _ Nothing = Nothing
Maybe自体は関手
モナド
関連
参考