Ich versuche, eine Reihe von Parametern in eine Funktion zu übergeben. Diese Funktion hat zwei Unterfunktionen, die Teil des obigen Parametersatzes sind.
Im folgenden Beispiel "SIMPLIFIED"
f_combined
ist eine Funktion, die ...
benötigt
Ich möchte den folgenden Funktionsaufruf so machen, dass xx
an f_sqr
übergeben wird und yy
an f_plus
:
aber es würde mir einen Fehler geben:
%Vor%irgendwelche Suggestionen?
%Vor% Alternativ würden Sie das formals()
einer Funktion abfragen, um zu sehen, welche benannten Parameter erwartet werden, und nur diese übergeben. Wenn die Funktion "child" ...
akzeptiert, werden alle Argumente übergeben. Diese Methode würde für Positionsargumente nicht gut funktionieren.
Hier habe ich die beiden Funktionen so eingestellt, dass sie als Parameter ( .fns=list(f_sqr, f_plus)
) ausgeführt werden, so dass sie leicht geändert werden können oder mehr hinzugefügt werden kann. Ich habe auch einen Parameter festgelegt, der angibt, wie diese Werte kombiniert werden, wenn Sie etwas anderes tun möchten als sie zu addieren ( .reduce='+'
). Aber die Grundidee ist, die besten mathematischen Parameter zu finden und sie zu übergeben. Da Ihre "Kind" -Funktion auch Standardwerte für ihre Parameter hat, werden sie ausgeführt, wenn Sie auch keine Parameter übergeben.
Hier sind einige Beispielanrufe
%Vor% Sie können entweder auf ...
als benannte paarweise Liste zugreifen oder auf sie mit der Anweisung ..n
Ausgabe von ?"..."
10.4 Das '...' Argument
Eine weitere häufige Anforderung besteht darin, eine Funktion weiterzugeben Argumenteinstellungen zu einem anderen. Zum Beispiel viele Grafikfunktionen verwenden Die Funktion par () und Funktionen wie plot () erlauben dem Benutzer, weiterzugeben grafische Parameter par () zur Steuerung der grafischen Ausgabe. (Sehen Die Funktion par () für weitere Details zur Funktion par (). Dies kann getan werden, indem ein zusätzliches Argument, wörtlich "...", der Funktion, die dann weitergegeben werden kann. Ein Umrissbeispiel wird gegeben unten.
%Vor%Weniger häufig muss sich eine Funktion auf Komponenten von '...' beziehen. Die Ausdrucksliste (...) wertet alle diese Argumente aus und gibt sie in einer benannten Liste zurück, während ..1, ..2 usw. sie auswerten zu einer Zeit, mit "..n" das n-te unübertroffene Argument zurückgeben.