Iteratee
適当な説明
- Enumerator -> ストリーム
- Iteratee -> ストリームに対する処理
- Enumeratee -> ストリームの各要素に対する処理
例
scalaz.iterateeとの比較
Scalazのと比較すると簡単に思える不思議。Scalaz
- Scalazではモナド変換子版がベース。
- IterateeにEnumeratee,Enumeratorを適用する。
- 型クラスを利用した実装で提供される関数は多い。
- だが型にうるさい。
- 明示的に型を指定しなければいけないこともしばしば。
Play
- Playでは結果がPromiseで返る。
- EnumeratorにIteratee,Enumerateeを適用する。
- 内部で使うことが目的なので提供される関数は少ない。
- まあfoldあれば事足りるよね。
- 推論が効く!Scalazのより楽だ!
結論:Scalazの方が高機能、Playの方はシンプル
ページ内文字列カウントスクリプト
ワンライナー!処理を適用していく感じが関数型言語チックでとても書きやすいです。