Guest User

Untitled

a guest
Jun 21st, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.50 KB | None | 0 0
  1. class Generator[T] extends Iterable[T] {
  2. val buffer = scala.collection.mutable.ArrayBuffer[() => Iterable[T]]()
  3.  
  4. protected def <<(t: => T) { buffer += (() => List(t)) }
  5.  
  6. protected def <<<(t: => Iterable[T]) { buffer += (() => t) }
  7.  
  8. override def iterator = buffer.toStream.flatMap(_.apply).iterator
  9. }
  10.  
  11. foo
  12.  
  13. val g = new Generator[String] {
  14. this << "foo"
  15. this << { println("bar!"); "bar" }
  16. this <<< { println("baz!"); (1 to 3) map ("baz: "+_) }
  17. }
  18.  
  19. g.iterator
  20. g.iterator take 1 foreach (println _)
Add Comment
Please, Sign In to add comment