Вы должны выполнить импорт import Numeric.Implicits._
для Scala, чтобы идентифицировать это +
как Numeric
дополнение.При импорте он работает и в консоли:
scala> import Numeric.Implicits._
import Numeric.Implicits._
scala> def sum[T: Numeric](seq: Seq[T]): T = if (seq.size == 1) seq.head else seq.head + sum(seq.tail)
sum: [T](seq: Seq[T])(implicit evidence$1: Numeric[T])T
Без импорта Scala пытается использовать метод +
, определенный в неявном классе Predef.any2stringadd
.Этот класс определен в Predef
, поэтому он автоматически импортируется в любой код Scala.Он преобразует первый аргумент любого типа в String
и ожидает, что второй аргумент будет String
.В вашем случае это не String
, поэтому сообщение об ошибке.