Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Generator[T] extends Iterable[T] {
- val buffer = scala.collection.mutable.ArrayBuffer[() => Iterable[T]]()
- protected def <<(t: => T) { buffer += (() => List(t)) }
- protected def <<<(t: => Iterable[T]) { buffer += (() => t) }
- override def iterator = buffer.toStream.flatMap(_.apply).iterator
- }
- foo
- val g = new Generator[String] {
- this << "foo"
- this << { println("bar!"); "bar" }
- this <<< { println("baz!"); (1 to 3) map ("baz: "+_) }
- }
- g.iterator
- g.iterator take 1 foreach (println _)
Add Comment
Please, Sign In to add comment