我希望能够创建一个可以无限重复一系列元素的枚举器,但我无法找到一种方法。当我创建一个递归枚举器时,当我尝试引用它时似乎溢出了堆栈。例如,为了创建一个重复 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)