Keep only elements that pass a condition.

Guarded For

ForGuard.scala
object Main {
  def main(args: Array[String]): Unit = {
    val limit = 
    val kept = for (n <- List(1, 2, 3, 4) if n > limit) yield n
    val text = kept.mkString(",")

    println("count=" + kept.length)
    println("text=" + text)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val limit = 
    val kept = for (n <- List(1, 2, 3, 4) if n > limit) yield n
    val text = kept.mkString(",")

    println("count=" + kept.length)
    println("text=" + text)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val limit = 
    val kept = for (n <- List(1, 2, 3, 4) if n > limit) yield n
    val text = kept.mkString(",")

    println("count=" + kept.length)
    println("text=" + text)
  }
}
for-guard An `if` clause inside a `for` filters elements before they are yielded, the same result as `filter` followed by `map`.