Constantのファンクタ則を例を使って確認
インポート
*Main> import Data.Functor.Constant
型の確認
*Main Data.Functor.Constant> :t Constant Constant :: a -> Constant a b *Main Data.Functor.Constant> Constant 1 Constant 1 *Main Data.Functor.Constant> let x = Constant 1 *Main Data.Functor.Constant> getConstant x 1 *Main Data.Functor.Constant> :t x x :: Num a => Constant a b
functorの確認
*Main Data.Functor.Constant> fmap (+2) x Constant 1 *Main Data.Functor.Constant> fmap (+5) x Constant 1
fmap (f.g) = fmap f. fmap g
の例による確認
*Main Data.Functor.Constant> let f = (* 5) *Main Data.Functor.Constant> let g = (+ 2) *Main Data.Functor.Constant> *Main Data.Functor.Constant> fmap f . fmap g $ x Constant 1 *Main Data.Functor.Constant> fmap (f . g) x Constant 1
fmap id = id
の確認
*Main Data.Functor.Constant> fmap id x Constant 1 *Main Data.Functor.Constant> id x Constant 1