機能一覧や例は以下にあるけど、これだけで理解するのは正直難しい。 http://www.haskell.org/ghc/docs/6.4.1/html/libraries/mtl/Control-Monad-State.html 理解しにくそうなところを意識して書いてみる。 なにをするものか: 関数の中で上から順番にデータを更新していく処理を書きたいとき使う。だけではあるけど。 まずはimport Control.Monad.Stateを行ってState型を使い、 State stateType resultTypeという型で状態更新を利用するstateApp関数を自由に実装する(ドキュメントの例は戻り値型が同じで紛らわしいので型をStringに変えてます。$はあえてすべて()にしてます): import Control.Monad.State tick :: State Int Stri