Scala para compreensões são sua própria recompensa

val one = "This checks for scala or sbt patterns"
val two
= "java rocks"
val sentences
= List(one, two)
val dict
= List("scala", "sbt", "patterns")

val result
= for {
sentence
<- sentences
does
= dict forall sentence.contains
} yield (sentence, does)

//result: List[(String, Boolean)] = List((This checks for scala or sbt patterns,true), (java rocks,false))

Dada uma lista de frases, a compreensão verifica se todas as palavras de um dicionário (lista) aparecem em cada frase e retorna uma lista de pares contendo a frase e o resultado.

Pois as compreensões são aplicações realmente poderosas e úteis de conceitos de programação funcional como mape flatMap, em um estilo expressivo açucarado. Uma das muitas razões pelas quais Scala é uma linguagem tão interessante e divertida de usar.

Esta é uma boa postagem que descreve as aplicações idiomáticas do para compreensão em Scala.