object Fib { val fib: Stream[Int] = 1 #:: ((0 #:: fib zip fib) map { case (x, y) => x + y }) def main(args: Array[String]) { println(fib take 10 toList) } } // > scala Fib // List(1, 1, 2, 3, 5, 8, 13, 21, 34, 55)