2011年12月23日金曜日

Writer, WriterT

Identity, MA, MABで使う型クラスはほとんど書いたので、モナドを書いていこうと思います。

Writer

計算中の値とは別にもう1つログを作ります。


値とログはoverとwrittenで取り出せます。


Writers#writerで直接インスタンスを作ることも出来ます。


WriterT

Writerのモナド変換子バージョン。


WriterTに定義してある型クラスのインスタンスは全て[α]WriterT[M, W, α]となっているので、BindやFunctorのインスタンスを利用するには、型の別名が必要みたいです。
put, putWithの他に、liftw, liftwWith, writerTがあります。


Writerは使えそうだけど使い方がわからないモナドの一つでしたが、モナド変換子の使い方もわかったし、これからはロジックの中に組み込んでいけそうです。

0 件のコメント:

コメントを投稿