タグ

ブックマーク / qiita.com/tacke_jp (1)

  • Applicative と Monad の違いについて - Qiita

    「ApplicativeとMonadは何が違うのか?」という疑問についての自分なりのまとめ。 型制約の強さの違い Haskellの型クラスは「特定の名前と型がついた関数が実装されているか」で型をグループ化する概念。言ってみればJavaのinterfaceのようなもので、ある型がその型クラスに属するためにはその型クラスによって指定された名前と型を持つ関数を定義する必要がある。 ApplicativeとMonadは型クラスであって、それぞれが要求する関数が異なる。 型クラスの定義を読む GHCi(7.10.2)によると、Applicativeの定義は以下。 Prelude> :i Applicative class Functor f => Applicative (f :: * -> *) where pure :: a -> f a (<*>) :: f (a -> b) -> f a -

    Applicative と Monad の違いについて - Qiita
  • 1