如何正确使用Stream的iterate和takeWhile构造?

时间:2019-05-15 22:50:12

标签: scala stream

在Scala 2.12.x中,我有以下示例,但未产生预期的结果:

val result = Stream.iterate(0)(_ + 10).takeWhile(_ < 100)
println(result)

// outputs:
// Stream(0, ?)

// while I expected:
// Stream(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, ?)

我在这里做什么错了?

1 个答案:

答案 0 :(得分:2)

您的流只有在将其转换为非惰性集合后才会实现:

Stream.iterate(0)(_ + 10).takeWhile(_ < 100).toList