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:
def trimNonWordCharacters[T <: Iterable[String]](items: T): T =
items map { _.replaceAll("\\W", "") }
Aqui está oREPL saída:
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", "") }
O objetivo é passar em qualquer implementação de um Iterable e obter o mesmo tipo de retorno. Isso é possível?