summaryrefslogtreecommitdiff
path: root/test/files/run/streams.scala
blob: 408affe3068320088dbf01f7518478db2736f19e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
object Test extends Application {
  val s0: Stream[Int] = Stream.empty
  println(s0.take(1))
  println(s0.takeWhile(_ > 0))
  println

  val s1 = Stream.cons(1, Stream.empty)
  println(s1.toArray)
  println(s1.take(1))
  println(s1.take(2))
  println(s1.drop(1))
  println(s1.drop(2))
  println(s1.drop(-1))
  println(s1.dropWhile(_ > 0))
  println

  val s2 = s1.append(Stream.cons(2, Stream.empty))
  println(s2.toArray)
  println(s2.drop(1))
  println(s2.drop(2))
  println(s2.drop(-1))
  println(s2.dropWhile(_ > 0))
  println

  // ticket #153
  def powers(x: Int) = if ((x&(x-1)) == 0) Some(x) else None
  val s3 = Stream.range(1, 100000)
  println(s3.flatMap(powers).reverse.head)
}