Можем ли мы определить набор операций DSL в Scala, которые выполняются параллельно друг с другом, как при конвейерной обработке в Linux

Простите за плохой английский, но я постараюсь изо всех сил выразить свой вопрос.

Предположим, я хочу обработать большой текст, операция которого заключается в фильтрации содержимого по ключевому слову; измените их на нижний регистр; а затем распечатайте их на стандартный вывод. Как мы все знаем, мы можем сделать это с помощью конвейера в сценарии Linux BASH:

cat article.txt | grep "I" | tr "I" "i" > /dev/stdout

где cat article.txt , grep «I» , tr «I» » i "> / dev / stdout работают параллельно.

В Scala мы, вероятно, делаем это так:

//or read from a text file , e.g. article.txt 
val strList = List("I", "am", "a" , "student", ".", "I", "come", "from", "China", ".","I","love","peace")  
strList.filter( _ == "I").map(_.toLowerCase).foreach(println)

Мой вопрос в том, как сделать фильтр , map и foreach параллельными?

] THX

5
задан ziggystar 17 January 2012 в 09:46
поделиться