複数の出力を返すユーザー定義関数こんにちは、
ユーザー定義関数が出力として複数の引数を返すことができるようにするためのリクエストをオープンしたいと考えています。 私が間違っていなければ、JSL のユーザー定義関数の現在の定義は次のようになります。
FunctionName = function({args_list},{localvars_List},
// Logic
// Return
Return(OutputVar); // where OutputVar can be list or data table or matrix
); 関数を呼び出すときに複数の引数を簡単に取得できるようにすると非常に有益だと思います。 そのような機能がすでに存在する場合は、例を提供してください。
自動化とスクリプト作成Re: ユーザー定義関数が複数の出力を返す - ステータスが「配信済み」に変更されましたRe: ユーザー定義関数が複数の出力を返す@uday_guntupalli , JMP 14 以降では、Return() 関数を使用して複数の値を返すことができるようになります (EvalList(List()) は必要ありません)。S1298458
私は確信しています@ジェフ・パーキンソンすぐに来て(編集:彼はすでにそうしました)、これを解決済みとしてマークします(管理者のみがステータスを変更できるため)。
Re: ユーザー定義関数が複数の出力を返す - ステータスが「すでに提供済み」に変更されました上で説明したように、JSL はリストを返すことでこれをすでにサポートしています。
もう 1 つのオプションは、連想配列を返すことです。 こうすることで、関数の呼び出し元は結果の順序を覚えておく必要がなくなります。
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: ユーザー定義関数が複数の出力を返す@brady_brady 、
例をありがとうございます。 それを行うオプションが見つからないため、アイデアに「機能が存在する」とマークしていただけますか
Re: ユーザー定義関数が複数の出力を返すこれを行うには、戻り値のリストを返します。 ほとんどの場合、リストを返す前に、Eval List () を使用してリストを評価する必要があります。
たとえば、以下に示す関数 MathOps は 2 つの数値を入力として受け取り、その合計、差、積、商を返します。
乾杯、
ブレイディ
mathOps = function({a,b},
{default local},
evallist({a+b, a-b, a*b, a/b})
);
{s, d, p, q} = mathOps(10,5);