Map を Functor のインスタンスにする
練習問題とされていたので自分で実装してみる
Map
,Functor
はすでに定義されているので独自のデータ型とFunctorを作る
data MyMap k v = MyMap k v deriving (Show) class MyFunctor f where fmap' :: (a -> b) -> f a -> f b instance MyFunctor (MyMap k) where fmap' f (MyMap k v) = MyMap k (f v)
実行する
*Main> let m = MyMap "key" 2 *Main> fmap' (*3) m MyMap "key" 6
所感
なんとかいけたのではないだろうか...

- 作者: MiranLipovaca
- 出版社/メーカー: オーム社
- 発売日: 2017/07/14
- メディア: Kindle版
- 購入: 4人 クリック: 9回
- この商品を含むブログを見る