Benutzerdefinierte Funktion gibt mehrere Ausgaben zurückHallo,
Möchte eine Anfrage für die Möglichkeit öffnen, einer benutzerdefinierten Funktion zu erlauben, mehr als ein Argument als Ausgabe zurückzugeben. Wenn ich mich nicht irre, sieht die aktuelle Definition einer benutzerdefinierten Funktion in JSL ungefähr so aus:
FunctionName = function({args_list},{localvars_List},
// Logic
// Return
Return(OutputVar); // where OutputVar can be list or data table or matrix
); Ich denke, es wäre äußerst vorteilhaft, wenn beim Aufrufen der Funktion problemlos mehrere Argumente abgerufen werden könnten. Bitte geben Sie ein Beispiel an, falls eine solche Funktion bereits vorhanden ist.
Automatisierung und SkripterstellungBetreff: Benutzerdefinierte Funktion gibt mehrere Ausgaben zurück – Status geändert in: GeliefertBetreff: Benutzerdefinierte Funktion gibt mehrere Ausgaben zurück@uday_guntupalli Ab JMP 14 können Sie die Funktion Return() verwenden, um mehrere Werte zurückzugeben (ohne dass EvalList(List()) erforderlich ist).S1298458
Ich bin sicher @Jeff_Perkinson Ich werde bald vorbeikommen (Bearbeiten: Er hat es bereits getan) und das Problem als gelöst markieren (da nur Administratoren den Status ändern können).
Betreff: Benutzerdefinierte Funktion gibt mehrere Ausgaben zurück – Status geändert in: Bereits angebotenWie oben erläutert, unterstützt JSL dies bereits durch die Rückgabe einer Liste.
Eine weitere Möglichkeit ist die Rückgabe eines assoziativen Arrays. Auf diese Weise müssen sich Funktionsaufrufer die Reihenfolge der Ergebnisse nicht merken.
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"]);Betreff: Benutzerdefinierte Funktion gibt mehrere Ausgaben zurück@brady_brady ,
Vielen Dank für das Beispiel. Wären Sie so freundlich, die Idee als „Funktion vorhanden“ zu markieren, da ich keine Möglichkeit sehe, dies umzusetzen?
Betreff: Benutzerdefinierte Funktion gibt mehrere Ausgaben zurückSie können dies tun, indem Sie eine Liste der Rückgabewerte zurückgeben. In den meisten Fällen möchten Sie die Liste vor der Rückgabe mit Eval List ( ) auswerten.
Die unten gezeigte Funktion MathOps verwendet beispielsweise zwei Zahlen als Eingabe und gibt deren Summe, Differenz, Produkt und Quotient zurück.
Prost,
Brady
mathOps = function({a,b},
{default local},
evallist({a+b, a-b, a*b, a/b})
);
{s, d, p, q} = mathOps(10,5);