用户定义函数返回多个输出你好,
希望打开一项请求,要求能够允许用户定义的函数返回多个参数作为输出。 如果我没记错的话,JSL 中用户定义函数的当前定义看起来像这样:
FunctionName = function({args_list},{localvars_List},
// Logic
// Return
Return(OutputVar); // where OutputVar can be list or data table or matrix
); 我认为在调用函数时允许轻松检索多个参数将非常有益。 如果此类功能已经存在,请提供示例。
自动化和脚本编写回复:用户定义函数返回多个输出 - 状态更改为:已交付回复:用户定义函数返回多个输出@uday_guntupalli ,从 JMP 14 开始,您将能够使用 Return() 函数返回多个值(无需 EvalList(List()))。S1298458
我敢肯定@杰夫·珀金森很快就会到来(编辑:他已经这样做了)并将其标记为已解决(因为只有管理员可以更改状态)。
回复:用户定义函数返回多个输出 - 状态更改为:已提供如上所述,JSL 已经通过返回列表来支持这一点。
另一种选择是返回关联数组。 这样函数调用者就不必记住结果的顺序。
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"]);回复:用户定义函数返回多个输出@brady_brady ,
非常感谢你的例子。 您能否将这个想法标记为“功能存在”,因为我没有看到这样做的选项
回复:用户定义函数返回多个输出您可以通过返回返回值列表来完成此操作。 在大多数情况下,您需要在返回列表之前使用 Eval List ( ) 对其进行评估。
例如,下面所示的函数 MathOps 将两个数字作为输入并返回它们的和、差、积和商。
干杯,
布雷迪
mathOps = function({a,b},
{default local},
evallist({a+b, a-b, a*b, a/b})
);
{s, d, p, q} = mathOps(10,5);