Stream.take将int作为参数。我想定义一个需要花费很长时间才能实现的,而不使用takeWhile来管理计数器吗?
答案 0 :(得分:1)
只是让你知道它至少是可行的(但这是一个好主意吗?),你可以用Stream
的替代版本来丰富take
:
implicit class StreamOps[A](val stream: Stream[A]) extends AnyVal {
def take(n: Long): Stream[A] = {
if (n <= 0 || stream.isEmpty) Stream.empty
else if (n == 1) Stream.cons(stream.head, Stream.empty)
else Stream.cons(stream.head, stream.tail take n-1)
}
}