Functorsの練習
fmapの基本的な使い方
Prelude> fmap (1+) (Just 4) Just 5 Prelude> fmap (1+) ([1..4]) [2,3,4,5]
ファンクターが関数を持つ場合$で適用する必要がある。
Prelude> fmap (\f -> f 4) (Just (1+)) Just 5 Prelude> fmap (\f -> f 4) ([(1*),(2*),(3*),(4*)]) [4,8,12,16] Prelude> fmap ($ 4) (Just (1+)) Just 5 Prelude> fmap ($ 4) ([(1*),(2*),(3*),(4*)]) [4,8,12,16]
fmapとNothingを併用した例
Prelude> fmap (+1) Nothing Nothing Prelude> fmap ($ 4) Nothing Nothing
ちょっとややこしい例(実用性はない?)
Prelude> fmap ($ 5) (fmap (+) (Just 3)) Just 8 Prelude> fmap ($ 5) (fmap (+) [1..4]) [6,7,8,9]