使用者定義函數傳回多個輸出你好,
希望打開一項請求,要求能夠允許使用者定義的函數傳回多個參數作為輸出。 如果我沒記錯的話,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);