Fonction définie par l'utilisateur renvoie plusieurs sortiesBonjour,
J'aimerais ouvrir une demande pour avoir la possibilité d'autoriser une fonction définie par l'utilisateur à renvoyer plus d'un argument en sortie. Si je ne me trompe pas, la définition actuelle d'une fonction définie par l'utilisateur dans JSL ressemble à ceci :
FunctionName = function({args_list},{localvars_List},
// Logic
// Return
Return(OutputVar); // where OutputVar can be list or data table or matrix
); Je pense qu'il serait très avantageux de permettre de récupérer facilement plusieurs arguments lors de l'appel de la fonction. Veuillez fournir un exemple si une telle fonctionnalité existe déjà.
Automatisation et scriptsRe : Fonction définie par l'utilisateur renvoie plusieurs sorties - Statut modifié en : LivréRe : Fonction définie par l'utilisateur renvoyant plusieurs sorties@uday_guntupalli , À partir de JMP 14, vous pourrez utiliser la fonction Return() pour renvoyer plusieurs valeurs (sans avoir besoin de EvalList(List())).S1298458
Je suis sûr @Jeff_Perkinson viendra bientôt (modifier : il l'a déjà fait) et marquera cela comme résolu (car seuls les administrateurs peuvent modifier le statut).
Objet : Fonction définie par l'utilisateur renvoyant plusieurs sorties - Statut modifié en : Déjà proposéComme indiqué ci-dessus, JSL prend déjà en charge cela en renvoyant une liste.
Une autre option consiste à renvoyer un tableau associatif. De cette façon, les appelants de fonctions n'ont pas besoin de se souvenir de l'ordre des résultats.
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 : Fonction définie par l'utilisateur renvoyant plusieurs sorties@brady_brady ,
Merci beaucoup pour l'exemple. Auriez-vous la gentillesse de marquer l'idée comme "une fonctionnalité existe", car je ne vois pas d'option pour le faire
Re : Fonction définie par l'utilisateur renvoyant plusieurs sortiesVous pouvez le faire en renvoyant une liste des valeurs de retour. Dans la plupart des cas, vous souhaiterez évaluer la liste avant de la renvoyer, en utilisant Eval List ( ).
Par exemple, la fonction MathOps présentée ci-dessous prend en entrée deux nombres et renvoie leur somme, leur différence, leur produit et leur quotient.
Acclamations,
Brady
mathOps = function({a,b},
{default local},
evallist({a+b, a-b, a*b, a/b})
);
{s, d, p, q} = mathOps(10,5);