Scala flacht Liste ab

Ich möchte eine Funktion schreiben, die eine Liste abflacht.

object Flat {
  def flatten[T](list: List[T]): List[T] = list match {
    case Nil => Nil
    case head :: Nil => List(head)
    case head :: tail => (head match {
      case l: List[T] => flatten(l)
      case i => List(i)
    }) ::: flatten(tail)
  }
}

object Main {
  def main(args: Array[String]) = {
    println(Flat.flatten(List(List(1, 1), 2, List(3, List(5, 8)))))
  }
}

Ich weiß nicht warum es nicht funktioniert, es kehrt zurückList(1, 1, 2, List(3, List(5, 8))) aber es sollte seinList(1, 1, 2, 3, 5, 8).

Kannst du mir einen Hinweis geben?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage