Следующий кодScala для понимания-вывода типа
def f(chars: List[Char]): List[List[Char]] = chars match {
case Nil => List(Nil)
case x :: xs => for {
v <- f(xs)
} yield List(x) :: v
}
дает сообщение об ошибке
- type mismatch; found : List[List[Any]] required: List[List[Char]]
Пожалуйста, помогите мне понять, почему «за» выбирает наиболее общий Любой вместо Char здесь? Какую тему в спецификации языка я должен прочитать? Благодарю.