Função que genericamente leva um tipo e retorna o mesmo tipo
Estou tendo dificuldade em entender por que o compilador Scala está insatisfeito com essa definição de função:
<code>def trimNonWordCharacters[T <: Iterable[String]](items: T): T = items map { _.replaceAll("\\W", "") } </code>
Aqui está oREPL saída:
<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>
O objetivo é passar em qualquer implementação de um Iterable e obter o mesmo tipo de retorno. Isso é possível?