2016-07-03 1 views
1

私は以下の2つのタイムを計り、どちらも同じ時間がかかるように見えます。他のものを使用する利点はありますか?Scala Map - > Reduce vs. FoldRight

(1 to 24).foldRight(List[Int]())((i, l) => l ::: generateList(signs, i)) 

(1 to 24).map(i => generateList(signs, i)).reduce(_ ::: _) 

P.S.私の使用例では、順序は関係ありません。

+2

関数型プログラミング(特にScala APIとScala API)の[reduceとfoldLeft/foldの差は?](http://stackoverflow.com/questions/25158780/difference-between-reduce-and-foldleft-fold) -in-function-programming-particula) – marios

答えて

4

foldRightが順番に動作し、mapは、順序が定義されていないため(理論的に)並列化可能です。私はそれが現在のスカラランタイムと並行しているとは考えていません。それは、将来、あるいは異なるプラットフォーム上にあるかもしれないということだけです。

+2

'someCollection.par'は可能であれば並列化可能です(http://docs.scala-lang.org/overviews/parallel-collections/overview.html) –