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 map
e 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.