For And Yield

object ForAndYield extends App{
  val vec1 = for(i <- 1 to 5) yield i
  println("Vector 1: "+vec1)

  val vec2 = for(i <- 1 to 5) yield i*i
  println("Vector 2: "+vec2)

  val a = Vector(1,2,3,4,5)
  val vec3 = for(e <- a) yield e
  println("Vector 3: "+vec3)

  val vec4 = for(e <- a; if e>2) yield e
  println("Vector 4: "+vec4)

}

Output

Vector 1: Vector(1, 2, 3, 4, 5)
Vector 2: Vector(1, 4, 9, 16, 25)
Vector 3: Vector(1, 2, 3, 4, 5)
Vector 4: Vector(3, 4, 5)