fugafuga.write

日々のログ

すごいH本 part54

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

所感

なんとかいけたのではないだろうか...

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!

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