Добро пожаловать на ТАК! Если вы новичок в Scala, рассмотрите следующие удобные для начинающих ресурсы
Scala предоставляет List.dropWhile
из коробки или рассмотрим следующую рекурсивную реализацию
def recDropWhile(l: List[Int], predicate: Int => Boolean): List[Int] = {
@scala.annotation.tailrec
def loop(l: List[Int], predicate: Int => Boolean): List[Int] = {
l match {
case Nil => Nil
case head :: tail => if (predicate(head)) loop(tail, predicate) else (head :: tail)
}
}
loop(l, predicate)
}
Оба вывода
val l = List(1,2,3,4,5,6,7,8)
l.dropWhile(_ < 5) // res3: List[Int] = List(5, 6, 7, 8)
recDropWhile(l, _ < 5) // res4: List[Int] = List(5, 6, 7, 8)