Scala foldLeft является:Список foldLeft в Scala
def foldLeft[B](z: B)(op: (B, A) => B): B = {
var result = z
this foreach (x => result = op(result, x))
result
}
Почему Scala develovers не использовать что-то вроде хвоста рекурсии или что-то другое, как это (это просто пример):
def foldLeft[T](start: T, myList: List[T])(f:(T, T) => T): T = {
def foldRec(accum: T, list: List[T]): T = {
list match {
case Nil => accum
case head :: tail => foldRec(f(accum, head), tail)
}
}
foldRec(start, myList)
}
Может ли так быть? Почему, если он не может/может?
Я не уверен, что все эти «почему эта библиотека Scala написана так?» вопросы очень полезны, даже если рассматриваемая библиотека является стандартной библиотекой. Вероятно, они лучше подходят для одного из списков рассылки Scala или для чата Scala/Scala Gitter. –