La funzione definita dall'utente restituisce più outputCiao,
Vorrei aprire una richiesta per la possibilità di consentire a una funzione definita dall'utente di restituire più di un argomento come output. Se non sbaglio, l'attuale definizione di una funzione definita dall'utente in JSL è simile a questa:
FunctionName = function({args_list},{localvars_List},
// Logic
// Return
Return(OutputVar); // where OutputVar can be list or data table or matrix
); Penso che sarebbe molto utile consentire di recuperare facilmente più argomenti quando si chiama la funzione. Si prega gentilmente di fornire un esempio nel caso in cui tale funzionalità già esista.
Automazione e scriptingOggetto: Funzione definita dall'utente che restituisce più output - Stato modificato in: ConsegnatoRi: La funzione definita dall'utente restituisce più uscite@uday_guntupalli , A partire da JMP 14, sarà possibile utilizzare la funzione Return() per restituire più valori (senza la necessità di EvalList(List())).S1298458
Sono sicuro che @Jeff_Perkinson arriverà presto (modifica: l'ha già fatto) e segnerà il problema come risolto (poiché solo gli amministratori possono modificare lo stato).
Oggetto: La funzione definita dall'utente restituisce più output - Stato modificato in: Già offertoCome discusso in precedenza, JSL lo supporta già restituendo un elenco.
Un'altra opzione è restituire un array associativo. In questo modo i chiamanti della funzione non devono ricordare l'ordine dei risultati.
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"]);Ri: La funzione definita dall'utente restituisce più uscite@brady_brady ,
Grazie mille per l'esempio. Saresti così gentile da contrassegnare l'idea come "la funzionalità esiste" poiché non vedo un'opzione per farlo
Ri: La funzione definita dall'utente restituisce più uscitePuoi farlo restituendo un elenco dei valori restituiti. Nella maggior parte dei casi, sarà necessario valutare l'elenco prima di restituirlo, utilizzando Eval List ( ).
Ad esempio, la funzione MathOps mostrata di seguito prende come input due numeri e restituisce la loro somma, differenza, prodotto e quoziente.
Saluti,
Brady
mathOps = function({a,b},
{default local},
evallist({a+b, a-b, a*b, a/b})
);
{s, d, p, q} = mathOps(10,5);