Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

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

Freeモナドを見ていたら、これってどこかで見た事があるような気がする...そう!不動点コンビネータです!!!

Freeモナド: Free f a := Pure a | Free (f (Free f a))
不動点コンビネータ: Fix f := f(Fix f)

FreeやFixが内容を包む形になっていますね。

ちょっと生半可な知識で調べてみたところ以下にような事がわかりました。

FreeとFixの違いについて。
・Freeは>>=による自然な拡張が行えるがFixにはできない(面倒)
・FreeはPureの存在により終点が必ず存在することが保証されるがFixの場合そうではない(Fix(identity)など)

「FreeはFunctorのFixpointである」らしいです。
Haskell難しいです。

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?