Lambdaカクテル

Common LISPが好きなWeb屋さんです 自宅サーバやフロントエンドもできます

monad

ScalazのKleisliの★

最近やっとの事で@yuroyoroさんや@xuwei_kさん、そして@eed3si9nさんたち先人のブログをかじってMonadicな関数を合成するやり方が分かりました。とりあえず`A => M[B]`な感じの関数を`kleisli(function)`みたいに書くと`reduce(>=>)`みたいな書き方ができる…

State monad in Scala via Scalaz

ScalazのStateモナドを使う機会があったのでメモ。 Stateモナドとは? 状態を含む計算を簡潔に記述する方法 しかもモナド たとえばこのような処理があったとする。 def foo(arg: Int): Int = { val s1 = arg + 10 val s2 = s1 * 2 val s3 = s2 - 4 s3 } 何度…

Freeモナドと不動点コンビネータ

Freeモナドを見ていたら、これってどこかで見た事があるような気がする...そう!不動点コンビネータです!!! Freeモナド: Free f a := Pure a | Free (f (Free f a)) 不動点コンビネータ: Fix f := f(Fix f) FreeやFixが内容を包む形になっていますね。…