Функция, которая обычно принимает тип и возвращает тот же тип

Мне трудно понять, почему компилятор Scala недоволен этим определением функции:

<code>def trimNonWordCharacters[T <: Iterable[String]](items: T): T =
     items map { _.replaceAll("\\W", "") }
</code>

ЗдесьРЕПЛ выход:

<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>

Цель состоит в том, чтобы передать любую реализацию Iterable и получить тот же тип возврата. Это возможно?

Ответы на вопрос(2)

Ваш ответ на вопрос