Suppose I've got an Iterator[A]
. I would like to convert it to Process[Nothing, A]
of scalaz stream.
import scalaz.stream._
def foo[A](it: Iterator[A]): Process[Nothing, A] = ???
How would you implement foo
?
I think that you can do it using 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
}
Example:
scala> foo(List(1,2,3,4,5).iterator).toList
res0: List[Int] = List(1,2,3,4,5)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With