Рекурсия списков Scala
var x: List[Int]=List(1,1,2,3,5,8)
var i:Int=0
def recList(l : List[Int]) : Int = l match {
case Nil => throw new Exception("Empty list")
case x :: Nil => x
case x :: xs => recList(xs)
}
Мне нужно найти последний элемент списка рекурсивным способом.Нашел вот такую функцию.Это можно как-то без case написать?Я просто только начал скалу изучать.Мне лучше просто с if.
Ответы (1 шт):
Автор решения: EnverOsmanov
→ Ссылка
def recList2(l: List[Int]): Int = {
if (l.isEmpty) throw new Exception("Empty list")
// head - первый элемент списка
// tail - список без первого элемента
else if (l.tail.isEmpty) l.head
else recList2(l.tail)
}
val x2: List[Int] = List(1,1,2,3,5,8)
recList2(x2) // вернёт 8