Función definida por el usuario Devuelve múltiples salidasHola,
Me gustaría abrir una solicitud para permitir que una función definida por el usuario devuelva más de un argumento como salida. Si no me equivoco, la definición actual de una función definida por el usuario en JSL se parece a esto:
FunctionName = function({args_list},{localvars_List},
// Logic
// Return
Return(OutputVar); // where OutputVar can be list or data table or matrix
); Creo que sería muy beneficioso permitir recuperar múltiples argumentos fácilmente al llamar a la función. Por favor proporcione un ejemplo en caso de que dicha característica ya exista.
Automatización y secuencias de comandosRe: Función definida por el usuario Devuelve múltiples salidas - Estado cambiado a: EntregadoRe: Función definida por el usuario Devuelve múltiples salidas@uday_guntupalli , A partir de JMP 14, podrá utilizar la función Return() para devolver múltiples valores (sin la necesidad de EvalList(List())).S1298458
Estoy seguro de que @Jeff_Perkinson Pasará pronto (editar: ya lo hizo) y marcará esto como resuelto (ya que solo los administradores pueden cambiar el estado).
Re: Función definida por el usuario Devuelve múltiples salidas - Estado cambiado a: Ya ofrecidoComo se mencionó anteriormente, JSL ya admite esto al devolver una lista.
Otra opción es devolver una matriz asociativa. De esta manera, quienes llaman a funciones no tienen que recordar el orden de los resultados.
mathOps = function({a,b},
{default local},
associative array({"sum", "difference", "product", "quotient"}, eval list({a+b, a-b, a*b, a/b}))
);
results = mathOps(10,5);
show(results["sum"]);Re: Función definida por el usuario Devuelve múltiples salidas@brady_brady ,
Muchas gracias por el ejemplo. ¿Sería tan amable de marcar la idea como "la característica existe" ya que no veo una opción para hacerlo?
Re: Función definida por el usuario Devuelve múltiples salidasPuede hacer esto devolviendo una lista de los valores devueltos. En la mayoría de los casos, querrás evaluar la lista antes de devolverla, usando Eval List ().
Por ejemplo, la función MathOps que se muestra a continuación toma como entrada dos números y devuelve su suma, diferencia, producto y cociente.
Salud,
Brady
mathOps = function({a,b},
{default local},
evallist({a+b, a-b, a*b, a/b})
);
{s, d, p, q} = mathOps(10,5);