Comment procéder pour appliquer chaque élément d'une liste à chaque argument d'une fonction? Un peu comme Map
, sauf avec un nombre variable d'arguments.Appliquer la liste aux arguments dans Mathematica
Ainsi, par exemple, si j'ai une fonction action[x1_,x2_,x3_]:=...
, et j'ai une liste {1,2,3}
, comment pourrais-je créer une fonction pour appeler action
avec action[1,2,3]
?
Je voudrais que cette fonction soit capable de me gérer le changement action
-action[x1_,x2]
, et toute autre chose, aussi, la liste étant maintenant {1,2}
, et d'appeler l'action maintenant avec action[1,2]
.
Quelle est la différence entre votre solution et celle de Sasha? Je veux dire, je vois '@@@' dans le vôtre et seulement '@@' dans le sien. Comment peuvent-ils tous les deux être pareils? –
@ d'o-o'b ils ne sont pas les mêmes, mais ils sont pour la même fonction: 'Apply'.'f @@ {1,2,3}' donne 'f [1,2,3]' en remplaçant 'List' par' f' au "niveau 0" (le plus haut niveau de '{1,2,3 } '). En revanche, 'f @@@ {1}, {2}, {3}}' donne {f [1], f [2], f [3]}, en remplaçant 'List' par' f' pour chaque _element_ de la liste, ou "Niveau 1". Cela peut également être fait pour les niveaux plus profonds d'une expression en utilisant 'Apply [f, expression, levelspec]' mais il n'y a pas de raccourci (comme '@@' ou '@@@') pour cela. Voir l'aide sur 'Level' pour plus de détails sur levelspec. –
@Wizard: merci! –