scan
和scanLeft
之间的区别是什么?
例如,
(1 to 3).scan(10)(_-_)
res: Vector(10, 9, 7, 4)
(1 to 3).scanLeft(10)(_-_)
res: Vector(10, 9, 7, 4)
与相比,显示相同的结果
(1 to 3).scanRight(10)(_-_)
res: Vector(-8, 9, -7, 10)
答案 0 :(得分:6)
(1 to 3).par.scanLeft(10)(_-_)
res: scala.collection.parallel.immutable.ParSeq[Int] = ParVector(10, 9, 7, 4)
(1 to 3).par.scanRight(10)(_-_)
res: scala.collection.parallel.immutable.ParSeq[Int] = ParVector(-8, 9, -7, 10)
(1 to 3).par.scan(10)(_-_)
res: scala.collection.parallel.immutable.ParSeq[Int] = ParVector(10, 9, -1, -4)
基本上,它取决于执行scan*
(或fold*
)的遍历的实现。