Variablen, Symbole und NamenWas ist in JSL der Unterschied zwischen einer Variable, einem „Symbol“ und einem „Namen“?
var=Expr(1+2);
Name Expr(var); // return the expression which is stored in the name "var" - so var is a name?
Clear Symbols(var); // how can I clear a "symbol" if it's actually a "name"
Automatisierung und SkriptingBetreff: Variablen, Symbole und NamenHm, Namen sind mehr als nur Variablen.
Wenn zB auf einen Namen () folgt, wird er als Funktion betrachtet:
https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtml
Und um es zu löschen, muss man es wieder als Symbol betrachten:
f = function({}, print(hello));
Delete Symbols(f);
is empty(f)
Betreff: Variablen, Symbole und NamenSo erstellen Sie einen Namen:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
x = Expr(sex);
Show(Type(Name Expr(x)),x);
x = Parse("sex");
Show(Type(Name Expr(x)),x);<BR /><BR />x = Parse(":sex");<BR />Show(Type(Name Expr(x)),x);
x = As Name("sex");
Show(Type(Name Expr(x)),x);
Show(x[5])
Betreff: Variablen, Symbole und NamenVielleicht besser:
names default to here(1);
x=1;
Clear Symbols(x);
Name Expr(x);
Name Expr(y);
x ist eine Variable, besser: ein Symbol
(kann über klare Symbole() gelöscht werden)
In Name Ausdruck(x) nimmt JMP den NAMEN "x" [wer weiß, ob es ein Symbol ist!] und wendet die folgenden Regeln an: https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtml , findet heraus, dass x ein Symbol im Here-Namespace ist und gibt den in diesem Symbol gespeicherten Ausdruck zurück.
In Name Ausdruck(y) nimmt JMP deinen NAMEN " y " und wendet die Regeln an: https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtml , findet nichts und gibt den Namen zurück.
Bisher dachte ich,
names default to here(1);
bedeutet:
Speichern Sie die Namen im Here-Namespace.
Aber eigentlich können Namen nicht gespeichert werden, es sind einfach nur Namen?
So ist es:
Suchen Sie die Namen im hier angegebenen Namespace – [und wenn Sie keinen Namespace angeben, speichere ich die Symbole dort].
Wen interessiert das? Vielleicht hilft es, die ursprüngliche Logik zu verstehen, um ihr besser folgen zu können ...
und wenn Name Ausdruck() einen Ausdruck als Argument erhält, der sich von einem einfachen Namen unterscheidet, gibt es einfach den Ausdruck zurück?
stets?