2008-07-01から1ヶ月間の記事一覧

Project Euler Problem 14(その4)

コラッツ問題でなんとか答えはでていますが,せっかくStateモナドを頑張ったので,それで書いてみます.StateモナドがMonadFixのインスタンスだとかは・・・スルーします. import Control.Monad.State import Data.List {- Project Euler Problem 14 e14-8.…

MonadFixの理解のために(2)---リストモナドでmfix考える4

ここまではpairwise swapという具体的なもので考えてきたので,こんどは抽象的に攻めてみます.MonaFixのインスタンスのmfixには満たすべき性質があるのでした. -- purity mfix (return . h) = return (fix h) -- left shrinking (or tightening) mfix (\x …

MonadFixの理解のために(2)---リストモナドでmfix考える3

前回はリストモナドでlistfixという関数をでっちあげてそれが期待した動作をすることを主張しました.実際コードを走らせて見れば動きます.今回はまずは,その動きを追いかけてみます. pairwise swapでリストモナドのmfixを追いかける 面倒なので,listfix…

MonadFixの理解のために(2)---リストモナドでmfix考える2

後だしジャンケンかつ自分を納得させるためだけのような内容です(^^; 再帰的な束縛を模索する ここでは強引な議論を展開します.先走るとリストモナドのmfixのあの妙な定義を引っ張り出す「発見的手法」を無理やり延々と展開します.前回の考察の続き.pairw…