如何将Iterator转换为scalaz流?

7
假设我有一个 Iterator[A]。我想将其转换为 scalaz streamProcess[Nothing, A]
import scalaz.stream._

def foo[A](it: Iterator[A]): Process[Nothing, A] = ???

你会如何实现foo

1个回答

8

我认为您可以使用 unfold 来完成:

import scalaz.stream._

def foo[A](it: Iterator[A]): Process[Nothing, A] = Process.unfold(it) { it =>
  if (it.hasNext) Some((it.next, it))
  else None
}

例子:

scala> foo(List(1,2,3,4,5).iterator).toList
res0: List[Int] = List(1,2,3,4,5)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接