Funktion, die generisch einen Typ annimmt und denselben Typ zurückgibt
Es fällt mir schwer zu verstehen, warum der Scala-Compiler mit dieser Funktionsdefinition nicht zufrieden ist:
<code>def trimNonWordCharacters[T <: Iterable[String]](items: T): T = items map { _.replaceAll("\\W", "") } </code>
Hier ist derREPL Ausgabe:
<code>scala> def trimNonWordCharacters[T <: Iterable[String]](items: T): T = items map { _.replaceAll("\\W", "") } <console>:5: error: type mismatch; found : Iterable[java.lang.String] required: T def trimNonWordCharacters[T <: Iterable[String]](items: T): T = items map { _.replaceAll("\\W", "") } </code>
Das Ziel ist es, bei jeder Implementierung eines Iterable die gleiche Art von Back-Out zu erzielen. Ist das möglich?