Я все еще относительно новичок в Scala. Я просматривал реализацию List Scala, где я увидел, что многие функции все еще используют «var» в реализации. Я читал, как scala является более функционально-ориентированным, поэтому вместо использования «var» библиотека не должна использовать хвостовую рекурсию, где это возможно.
Например, exits может быть переписан как:
@tailrec
def exists[A](f : A => Boolean) : Boolean = this match {
case Nil => false
case l:LinearSeq[A]=> if (f(l.head)) true else exists(l.tail,f)
}
Причина, по которой я спрашиваю, заключается в том, что я читаю много материала, в котором не рекомендуется использовать «var», но я вижу, что многое из этого используется в реализации List.
Спасибо !