scala maneira de definir funções que aceitam uma lista de diferentes tipos numéricos
Eu tenho o seguinte problema: Eu tenho uma função que usa uma List [Double] como parâmetro, executa algumas operações aritméticas nos elementos da lista e depois retorna o resultado. Gostaria que a função também aceitas List [Int]. Aqui está um exemplo:
def f(l: List[Double]) = {
var s = 0.0
for (i <- l)
s += i
s
}
val l1 = List(1.0, 2.0, 3.0)
val l2 = List(1, 2, 3)
println(f(l1))
println(f(l2))
É claro que o segundo println falha, pois f requer List [Double] e não List [Int].
Observe também a formulação no estilo não escala da soma dentro da função f, a fim de evidenciar a necessidade de usar 0 (ou outras constantes) dentro da própria função (se eu somar valores Int, tenho que iniciar s para 0 e não 0,0.
Qual é a melhor maneira (menos código) para que a função funcione no Double e no Int?
(Eu vi algo sobre 2.8 Característica numérica por não ter tanta certeza de como usá-lo ...)
Obrigado a todos pela ajuda.