Scala ZIO Stream数据类型

时间:2019-11-05 08:31:10

标签: scala stream zio

是否可以找到ZIO Stream的大小,我有两个流,想要找到两者之间的内积,我的问题是如何找到大小以迭代它们。我使用map和foldMap解决了问题,但我想检查两种方法之间的性能? 这是我使用Fold and Map的工作:

settings.py

输出:60

1 个答案:

答案 0 :(得分:1)

我将假设“内部乘积”是指您想将两个Stream[Double]视为数学矢量,并在对整个流进行迭代后计算单个输出值。

为此,很容易使用zip计算两个流的元素乘积,然后使用foldLeft计算最终结果。

val products: Stream[Double] = stream1.zip(stream2).map(_ * _)
val innerProduct: UIO[Double] = products.run(Sink.foldLeft(_ * _))