2008-06-01から1ヶ月間の記事一覧
かなりfixを使ってみたので,そもそもの本題に向かいます. リストはMonad ひとまず,リストはモナドであることの定義は instance Monad [] where m >>= k = foldr ((++) . k) [] m m >> k = foldr ((++) . (\ _ -> k)) [] m return x = [x] fail _ = [] と…
decWithMin問題 まだ具体例にこだわります.もうfixから離れている気もしますが,まあ,再帰すなわちfixということで.さて,Otter_OさんのところのArrowの話題ArrowLoopとCircularPrograming - 取り急ぎブログですに関連して(私はArrowって何?の人です)…
しつこく再帰処理とfixに粘着します.果たして,mfixにたどり着くのか(苦笑). repmin(A recursive do for Haskell, by Levent Erk\"ok, John Launchbury, Haskell Workshop 2002, pages: 29-37. Pittsburgh, Pennsylvaniaより) 次のお題は「repmin」で…
寝ようと思ったけども・・・・結城さんのところで続編のアナウンスがあって,しかもFermatだとあったので,中身の予想をしてました(主に通勤の電車にて(笑)).けど,勝手に書いていいものかと思ってたのですが,結城さん本人がネタばらし的なエントリを…
具体例を頑張ってみます.fixに無名関数を与えるか,名前をつけるかは見やすくなる方を独断で決めて使うことにします. 条件を満たす値の和(プログラミングGauche,p.72より) リストの中から条件を満たす要素だけの和を求めてみます.普通なら条件を与える…
Control.Monad.FixとData.Functionにfixなる関数が定義されています. fix:(a->a)->a fix f = let x = f x in x 何か詐欺みたいな定義です.この定義から分かることは fixは関数fに対して,x=f xとなるx,つまりfの不動点(fixed point)を返す ということで…
ついでなのでStateモナドの定義を最後まで. MonadFixクラス StateモナドはMonadFixクラスのインスタンスでもあります.Stateモナドから離れて,MonadFixクラスを考えてみます.何なんでしょう,これ.Fixというからには何かを固定するはずです. class (Mon…