一連の要素を無限に繰り返す Enumerator を作成できることを望んでいましたが、方法がわかりません。再帰的な列挙子を作成すると、参照しようとするとスタックがオーバーフローするようです。たとえば、A、B、C、D、A、B、C、D、A、B、C、D、A を繰り返す列挙子を作成するには、次のようなものを使用したいと考えていました。
scala> lazy val e1: Enumerator[String] = Enumerator("a","b","c","d") andThen e1
e1: play.api.libs.iteratee.Enumerator[String] = <lazy>
しかし、これを何らかの方法で使用しようとすると、スタックオーバーフローが発生します:
scala> e1 through Enumeratee.take(1) apply Iteratee.foreach(println(_)
java.lang.StackOverflowError
at .e1$lzycompute(<console>:11)
at .e1(<console>:11)
at .e1$lzycompute(<console>:11)
at .e1(<console>:11)
at .e1$lzycompute(<console>:11)
at .e1(<console>:11)