drkcore

2009/12/16 20:29:56

Haskellで継続

Haskell - WikiBookを読んでる。

継続のあたりまで進んだのだけど、動かすのに困ったのでメモ。説明は分かりやすかった。あと、Haskell-modeはミニバッファに型が出てきて便利。いちいち:tとかやって確認するの面倒だし。

import Control.Monad.Cont

foo :: Int -> Cont r String
foo n =
  callCC $ \k -> do
    let n' = n ^ 2 + 3
    when (n' > 20) $ k "over twenty"
    return (show $ n' - 4)

-- runCont (foo 5) id

そしてさらに、Haskellの継続モナド(Continuation Monad)を理解するポイントも併せて読んで吉。

wikibookはarrowのとことかも分かりやすかった。

Comments