takeWhile

trait Collection[A] {
  def takeWhile(p: (A) => Boolean): Collection[A]
}

takeWhile cria uma coleção mantendo o prefixo mais longo de elementos que satisfazem o predicado p, descartando o restante.