ファンクターからアプリカティブファンクターへ Haskell の型の特徴 (おさらい) Haskell では、一般的で抽象的な振る舞いを定義する型クラスを簡単に作ることができる オープンな型クラス 強力な型システム オープンな型システム 型の巨大な階層構造を気にする必要がない 強力な型システム 型宣言から多くの情報を読み取れる ファンクターとしての IO アクション instance Functor IO where fmap :: (a -> b) -> IO a -> IO b fmap f action = do result <- action return (f result) 関数 f を IO アクションに fmap すると、「元の IO アクションの結果に関数 f を適用して返す」 IO アクションが作られる。 IO アクションという箱の中身に関数 f を適用できる ファン