コンテキストでの型の操作 Functor型クラス Functor型クラスのコンテキストで関数を使用する fmap関数、<$>演算子
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON27(Functor型クラス)、27.2(Functor型クラスのコンテキストで関数を使用する)、クイックチェック 27-2の解答を求めてみる。
コード
reverseMaybe1 :: Maybe String -> Maybe String
reverseMaybe1 = fmap reverse
reverseMaybe2 :: Maybe String -> Maybe String
reverseMaybe2 s = reverse <$> s
s :: [Maybe String]
s =
[ Just "",
Just "a",
Just "Haskell",
Nothing
]
fs :: [Maybe String -> Maybe String]
fs = [reverseMaybe1, reverseMaybe2]
main :: IO ()
main = do
mapM_
(\f -> mapM_ (print . f) s)
fs
入出力結果(Terminal, Zsh)
% runghc sample02.hs
Just ""
Just "a"
Just "lleksaH"
Nothing
Just ""
Just "a"
Just "lleksaH"
Nothing
%