タグ

ブックマーク / hiyakashi.hateblo.jp (1)

  • MaybeCPSモナド - かしをろぐ

    2014-02-13 MaybeCPSモナド Haskell これね、新型のオスプレイ。 モナドはとても実用的な構造だ。モナドは単なる第一級手続きとは一線を画すものだ[要出典]。 Haskellという言語の上に新たな構文、制御構造、副作用を表現できる。自在手続きとでも言ってみようか。 そんなモナドだが、書き方によってはそのパフォーマンスが著しく低下してしまうことがある。 hoge :: Int -> Maybe Int hoge 0 = Nothing hoge i = hoge (i-1) >>= return このMaybeを返す単純な再帰関数は基底部に辿り着くまでに以下のような式を生成する。 (...(((Nothing >>= return) >>= return) >>= return) ... >>= return) 左結合で(>>=)がネストされていく様が見えるだろう。これを

  • 1