無限リスト
作ってみる。
- 平方数
scala> val s = Stream from 1 map(x => x * x) s: Stream[Int] = Stream(1, ?) scala> s take 16 foreach(printf("%d ", _)) 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256
- 繰り返し
scala> Stream from 0 map(x => x % 3 + 1) take 20 foreach(printf("%d ", _)) 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2
- 素数
scala> val p = Stream from 2 filter(x => !((2 to x - 1) exists(x % _ == 0))) p: Stream[Int] = Stream(2, ?) scala> p(19) res39: Int = 71 scala> p take 20 foreach(printf("%d ", _)) 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71
- 追記
繰り返し
scala> Stream const(1 to 3) flatMap(x => x) take 10 print 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, Stream.empty