Требуется ли вам использовать foldLeft()
?
def atLeastOne[T](p: T => Boolean, as: Seq[T]): Boolean =
as.foldLeft(false)(_ || p(_))
Или вам разрешено быть более прямым?
def atLeastOne[T](p: T => Boolean, as: Seq[T]): Boolean =
as exists p
Тестирование:
atLeastOne((x:Int) => x > 57, List(3,11,71,43,5)) //res0: Boolean = true
atLeastOne[Char]('w'.==, "abcdef") //res1: Boolean = false
atLeastOne[String](_.isEmpty, "this-and--that".split("-")) //res2: Boolean = true
atLeastOne[Float](_ < 1F, Vector()) //res3: Boolean = false