Warum leitet Scala den Typ nicht aus generischen Typparametern ab?

Angenommen, diese Funktion

def func[A](data: List[A], mapper: A => String) = { 
  data.map(item => mapper(item)) 
}

Warum dieser Code nicht kompiliert:

val list = List(1, 2, 3)
func(list, a => a.toString)

Aber dieser macht:

val list = List(1, 2, 3)
func[Int](list, a => a.toString)

Oder

val list = List(1, 2, 3)
func(list, (a: Int) => a.toString)

Währenda Typ kann aus der Liste abgeleitet werden, die istList vonInt. Warum leitet Scala den Typ hier nicht ab?

Gibt es einen anderen Weg?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage