拙い発表でしたが、まじめに聞いてくれたScala会議参加者の方々には感謝です。 このLTで話せなかったIterateeについて、tanakhさんのブログを参考に書かせていただきます。 Scalazでの実装 ブログを参考に実際に実装してみます。 定義は簡単。 Haskellのコードとあまり変わりがないですね。(ぇ ストリームはList(El(1), El(2), El(3), EOF())みたいなイメージです。 enum,runの実装。 enumはfoldl(むしろreduce?)そのままで、IterVを関数と初期値にみたたて、Doneの場合でも結果を返すものと思えばいいです。 runは結果を取り出すだけ。初期値に当たるものがない場合があるので、結果はOptionで返します。 Iterateeたち。 これらをストリームに適用し、結果を得ます。curriedとか初めて使った気がします。 型が消