JSL-Tipp: Mehrere ZuweisungenEine oft übersehene Funktion der JMP Scripting Language ist die Möglichkeit, mehreren Variablen in einer einzigen Zuweisungsanweisung Werte zuzuweisen. Ein grundlegendes Beispiel ist:
// weise 1 x und 100 y zu
{x, y} = {1, 100};
Die Syntax ist besonders nützlich, wenn die Werte der Variablen von vorherigen Werten abhängen. Eine einfache (und schnelle) Möglichkeit zum Austauschen der Werte von zwei Variablen ist beispielsweise:
// tauschen Sie x und y aus
{x, y} = Bewertungsliste ({y, x});
Hier sehen Sie den Vorteil der Mehrfachzuordnung. Andernfalls müssten Sie eine temporäre Variable hinzufügen und drei Zuweisungsanweisungen verwenden. Bewertungsliste Dies ist erforderlich, da JMP bei der Auswertung einer Liste die Listenmitglieder standardmäßig nicht auswertet.
Eine andere Verwendung ist, wenn Sie eine iterative Berechnung von zwei oder mehr voneinander abhängigen Variablen durchführen. Euklid größter gemeinsamer Teiler Algorithmus ist eine solche Berechnung.
// Greatest Common Divisor von zwei ganzen Zahlen
gcd = Funktion ({a, b},
Während (b! = 0,
{a, b} = Eval List ({b, Mod (a, b)});
);
ein
);
gcd (45, 60); // fünfzehn
Einfügen Show (a, b) Anweisung nach der Zuweisung, um zu sehen, wie der Algorithmus funktioniert.
Mark Bailey hat geschrieben: Ich benutze oft diese Redewendung, da ich lerne ... Mark Bailey schrieb:
Ich benutze diese Redewendung oft, da ich gelernt habe, dass Listen als L-Wert dienen können. Listen sorgen für effizienten und kompakten und dennoch lesbaren Code. Hier sind zwei der häufigsten Anwendungen für mich:
// Konfidenzintervall des Mittelwerts
sampleN = 10;
Probe = J (Probe N, 1, Zufallsnormal (10, 1));
yBar = Mittelwert (Probe);
sdY = Std Dev (Probe);
{lo95% CI, hi95% CI} = Runde (
yBar + {-1, 1} t Quantil (0,975, Probe N-1) sdY / Sqrt (sampleN),
2
);
Zeigen (lo95% CI, hi95% CI);
// y-Achsenskala
{yMin, yMax} = Runde (
yBar + {-4,5, 4,5} * (Maximum (Probe) - Minimum (Probe)),
1
);
Show (yMin, yMax);