Описание тега for-comprehension

NoneFor-complation - это конструкция на языке Scala, позволяющая легко перебирать одну или несколько коллекций.

Прежде чем мы увидим несколько примеров for-complation, давайте сначала определим следующие списки:

val list1 = List("a", "b")
val list2 = List("c", "d")
val list3 = List("e", "f")

Теперь мы можем увидеть первый пример. Это императивная форма понимания. Он выполняет итерацию по каждому списку и для каждой комбинации выполняет оператор println:

for { x <- list1; y <- list2; z <-list3 } println(x+y+z)

Результат:

ace
acf
ade
adf
bce
bcf
bde
bdf

Второй пример - функциональная форма понимания. Он использует ключевое слово yield для создания и возврата списка:

for { x <- list1; y <- list2; z <-list3 } yield x+y+z

Результат:

List[String] = List(ace, acf, ade, adf, bce, bcf, bde, bdf)