Me preguntaba cómo escribirías un método en Scala que toma una función f
y una lista de argumentos args
donde cada arg es un rango. Supongamos que tengo tres argumentos (Range(0,2)
, Range(0,10)
y Range(1, 5)
). Entonces quiero iterar sobre f
con todas las posibilidades de esos tres argumentos.verificando una distribución de probabilidad con sumas variables de argumentos a 1
var sum = 0.0
for (a <- arg(0)) {
for (b <- arg(1)) {
for (c <- arg(2)) {
sum += f(a, b, c)
}
}
}
Sin embargo, deseo que este método funcione para funciones con un número variable de argumentos. es posible?
Editar: ¿hay alguna manera de hacer esto cuando la función no toma una lista, sino que toma una lista de parámetros estándar o está curried?
Creo que es posible a través de la recursión, pero solo si 'f' acepta la lista de valores. –
Esperaba resolverlo sin esta restricción ('f' toma una lista de parámetros estándar o está al curry). – schmmd