Здесь я заполнить два списки, где каждый список либо изменяемый или неизменен:Наполнения неизменяемого списка
var mutableList = scala.collection.mutable.MutableList[String]()
//> mutableList : scala.collection.mutable.MutableList[String] = MutableList()
//|
for (a <- 1 to 100) {
mutableList += a.toString
}
println(mutableList.size); //> 100
val immutableList = List[String]() //> immutableList : List[String] = List()
for (a <- 1 to 100) {
immutableList :+ a.toString
}
println(immutableList.size); //> 0
При печати размера immutableList его выход равен 0. Это происходит потому, что в пределах цикла для нового создана ссылка, которая не указывает на immutableList? Существует ли функциональный эквивалент заполнения неизменяемого списка из цикла?
'fold' (Left/Right) - это то, что вы ищете (или/tail recursive/recursion). (Или просто 'to [List]' после 'map'.) –