Wie würde ich jedes Element in einer Liste auf jedes Argument in einer Funktion anwenden? Ein bisschen wie Map
, außer mit einer variablen Anzahl von Argumenten.
Wenn ich zum Beispiel eine Funktion action[x1_,x2_,x3_]:=...
habe und eine Liste {1,2,3}
, wie würde ich eine Funktion erstellen, um action
mit action[1,2,3]
?
Ich möchte, dass diese Funktion mit mir umgehen kann, indem ich action
zu action[x1_,x2]
und noch etwas anderes ändere, wobei die Liste jetzt {1,2}
ist und jetzt Aktion mit action[1,2]
aufruft.
Basierend auf "Art der gleichen Map, außer mit einer variablen Anzahl von Argumenten." Ich denke, Sie suchen vielleicht nach Apply
bis Level 1. Dies geschieht mit:
oder die Kurzschrift:
%Vor%Hier ist was es tut:
%Vor% %Vor% Die oben verwendete Terminologie kann irreführend sein und begrenzt die Leistung von Apply
. Der Ausdruck, auf den Sie action
anwenden, muss kein rechteckiges Array sein. Es muss nicht einmal ein List
: {...}
sein oder seine Elemente müssen Listen sein. Hier ein Beispiel mit diesen Möglichkeiten:
args
ist kein List
, aber eine Menge von Alternatives
action
übergebenen Argumente variiert args
hat head f
Beachten Sie Folgendes:
action
ersetzt den Kopf jedes Elements von args
, was auch immer es sein mag. args
wird in der Ausgabe beibehalten, in diesem Fall Alternatives
(Kurzform: a | b | c
) Tags und Links wolfram-mathematica