Iterator と Iteratee の違い Scala には、Iterator[E] というおなじみのインターフェースがあります。 Iterator[E] と Iteratee[E, A] の違いは、Iterator[E] は、何らかのコレクションから生成されるのに対して、Iteratee[E, A] は、コレクションとは独立していて、不変(immutable)で、非ブロック非同期処理で、入力の型 E と出力の型 A が静的に定義されているという特長に加え、結果が必要になるまで何ら実行されないという特長があります。 とはいうものの、Iteratee で実現できることのほとんどは、Iterator を使用しても実現できます。 どちらを使うかは、好みの問題です。 例1: Int型の要素をもつ Enumerator[Int] とそれの合計を計算する Iteratee[Int, Int] //