Llamar al mapa en una colección paralela a través de una referencia a un tipo de antepasado

Traté de hacerlo opcional para ejecutar unmap Operación secuencial o en paralelo, por ejemplo utilizando el siguiente código:

val runParallel = true
val theList = List(1,2,3,4,5)
(if(runParallel) theList.par else theList) map println //Doesn't run in parallel

Lo que noté es que la operación de 'mapa' no se ejecuta en paralelo como esperaba. Aunque sin el condicional, sería:

theList.par map println   //Runs in parallel as visible in the output

El tipo de expresión.(if(runParallel) theList else theList.par) que espero que sea el antepasado común más cercano de ambos tipos detheList ytheList.par Es un tipo de miedo que no pegaré aquí, pero es interesante de ver (a través de la consola Scala :)

:type (if(true) theList else theList.par)

¿Por qué nomap ¿En la colección paralela trabajan en paralelo?

ACTUALIZACIÓN: Esto se discute enSI-4843 pero del boleto de JIRA no está claro por qué sucedió esto en Scala 2.9.x.

Respuestas a la pregunta(1)

Su respuesta a la pregunta