タグ

ブックマーク / blog.j5ik2o.me (1)

  • Maybeを自作してみる(Monad編 その1) - かとじゅんの技術日誌

    Monadを調べていると、モナモナ言いたくなりますね! さて、OptionをMonad対応する例を書いてみます。 Monad型クラスは次のような定義になっています。returnと>>=を実装せいということらしい。 class Monad m where return :: a -> m a (>>=) :: m a -> (a -> m b) -> m b (>>) :: m a -> m b -> m b x >> y = x >>= \_ -> y fail :: String -> m a fail msg = error msg return関数はApplicative Functorのpureと同等の処理でよいらしいので、値コンストラクタを指定します。 >>=*1はOptionと、Someの値を引数にとりOptionを返す関数を受け取り、Optionを返します。 >>は問答無用

    Maybeを自作してみる(Monad編 その1) - かとじゅんの技術日誌
  • 1