fork download
  1. import Stream._
  2. trait Stream[+A]
  3.  
  4. case object Empty extends Stream[Nothing]
  5. case class Cons[+A](h: () => A, t: () => Stream[A]) extends Stream[A]
  6.  
  7. object Stream {
  8. def constant[A](a: A): Stream[A] = {
  9. lazy val tail: Stream[A] = Cons(() => a, () => tail)
  10. tail
  11. }
  12. }
  13.  
  14. object Main extends App {
  15. println(constant(5))
  16.  
  17. }
Success #stdin #stdout 0.39s 382016KB
stdin
Standard input is empty
stdout
Cons(<function0>,<function0>)