diff --git a/src/library/scala/collection/parallel/ParIterableLike.scala b/src/library/scala/collection/parallel/ParIterableLike.scala index e79cba4b2..88c9eb417 100644 --- a/src/library/scala/collection/parallel/ParIterableLike.scala +++ b/src/library/scala/collection/parallel/ParIterableLike.scala @@ -455,6 +455,18 @@ self => executeAndWaitResult(new Max(ord, parallelIterator) mapResult { _.get }).asInstanceOf[T] } + override def maxBy[S](f: T => S)(implicit cmp: Ordering[S]): T = { + if (isEmpty) throw new UnsupportedOperationException("empty.maxBy") + + reduce((x, y) => if (cmp.gteq(f(x), f(y))) x else y) + } + + override def minBy[S](f: T => S)(implicit cmp: Ordering[S]): T = { + if (isEmpty) throw new UnsupportedOperationException("empty.maxBy") + + reduce((x, y) => if (cmp.lteq(f(x), f(y))) x else y) + } + override def map[S, That](f: T => S)(implicit bf: CanBuildFrom[Repr, S, That]): That = bf ifParallel { pbf => executeAndWaitResult(new Map[S, That](f, pbf, parallelIterator) mapResult { _.result }) } otherwise super.map(f)(bf) diff --git a/src/library/scala/collection/parallel/immutable/ParRange.scala b/src/library/scala/collection/parallel/immutable/ParRange.scala index db38b5bfc..5cdfd6f6d 100644 --- a/src/library/scala/collection/parallel/immutable/ParRange.scala +++ b/src/library/scala/collection/parallel/immutable/ParRange.scala @@ -28,7 +28,7 @@ import scala.collection.parallel.ParIterableIterator * * @author Aleksandar Prokopec * @since 2.9 - * + * * @define Coll immutable.ParRange * @define coll immutable parallel range */