#あ、そうか。なんかそれでいけそう。
#IORefで一撃でした。thanx。
#そうかAPIが固定なイメージがあったけど、引数増やしてAPIにあう関数を生成すればいいだけか。見えなかった。
#Iterateeスタイルで書いてみたけどパフォーマンスが微妙に落ちたから、もしかしたらIORefで書き直した方が速度出るかな。
##土日に-profしてみるか。
#てゆうか、えらいエントリが増えてる
#つか、0.9出てんじゃん。しかもまた大量に変えやがってw
#(MonadTrans t, Monad m) => t (m a)だとb -> IO ()に渡せないから、m (t m a)にひっくり返してから実行して、最後にt (m a)に戻すという話です。
#そうそう。そこで渡せないじゃんって思ったんですよ。
#型的にはそっくり。(MonadTrans t, Monad m)なコンテキストも。
#そらそうか。
#読んでみます。
#あ、まだ
#まだRCだったか。
#DListってなんで差分リストっていうんだろう?
#ソース見たけど、どう考えたらこんなデザインができるようになるんだろう?
#語源を探してみましたが、見つかりませんでした。
##こいつかぁ?
##「あえて手続き的な解釈をすると、リスト末尾に未初期化領域への参照を確保しておくことで、リストの連結を参照先の初期化として意味づける、という事である。」おー、なるほど!
#DL { unDL :: [a] -> [a] }としてるのはそういうことか。
#でも「差分」からは話がずれてきている気がする。
#あ、いいのか。後で追加されるであろう部分も含めた全体から後で追加されるであろう部分を除いたものとして残る頭部が差分リストか。
#Prolog の世界で本当に差分であっても、Haskell の世界では関数合成に抽象化されますから、差分という意味合いはまったく感じ取れなくなりますね。
#これまた、遅延評価が抽象化して、もともとの話題がぎこちなく見える例?
#これって確かにDListで扱っているうちはO(1)でsnocできるけど、toListした瞬間に処理が走って遅くなるわけですよね?DListの世界だけで済ませられればOKってことかな?
#面白そうだけど、期待してたものじゃないなぁ。
#goferのころから、Prelude に ShowSという特化した型があるんだけど、なぜそれが用意されているのか意外と理解されていない。pretty printer を書いたことがあればすぐ理解できるはずではあるんだけど。
##コメント書いてるタナカってtanakahだったりするのかしらん?
#あ、違うか元のエントリ主かな?
#別の方です
#あー、難読のものもなんとなく読めるわ。書けないけど。
#RWHのChapter 13にあったわ。> DList
#データ構造の章か。
#えええ? 知っていて書いてたんじゃないんですか? 読書会でも読みましたよ!
#みたら思い出したけど、すっかり忘れてました。