variables, symboles et nomsen JSL, quelle est la différence entre une variable, un « symbole » et un « nom » ?
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"
Automatisation et scriptsRe: variables, symboles et nomsHm, les noms sont plus que de simples variables.
par exemple si un nom est suivi de () , il est considéré comme une fonction :
https://www.jmp.com/support/help/fr/19.0/#page/jmp/rules-for-resolving-names.shtml
Et pour l'effacer ou le supprimer, il faut encore le considérer comme un symbole :
f = function({}, print(hello));
Delete Symbols(f);
is empty(f)
Re: variables, symboles et nomsComment créer un nom :
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])
Re: variables, symboles et nomsPeut-être mieux :
names default to here(1);
x=1;
Clear Symbols(x);
Name Expr(x);
Name Expr(y);
x est une variable, mieux : un symbole
(peut être effacé via les symboles d'effacement() )
Dans Nom expr(x) , JMP prend ton NOM "x" [comment sait si c'est un symbole !], applique les règles : https://www.jmp.com/support/help/fr/19.0/#page/jmp/rules-for-resolving-names.shtml , découvre que x est un symbole dans l'espace de noms ici et renvoie l'expression stockée dans ce symbole.
Dans Nom expr(y) , JMP prend ton NOM " y ", applique les règles : https://www.jmp.com/support/help/fr/19.0/#page/jmp/rules-for-resolving-names.shtml , ne trouve rien et renvoie le nom.
Jusqu'à présent, je pensais,
names default to here(1);
moyens:
stocker les noms dans l'espace de noms ici.
Mais en fait, les noms ne peuvent pas être stockés, ce ne sont que des noms ?
C'est donc:
Recherchez les noms dans l'espace de noms ici - [et si vous ne spécifiez pas d'espace de noms, je stockerai les symboles là-bas].
Qui s'en soucie ? Peut-être que comprendre la logique originelle aide à mieux la suivre…
et si nom expr() obtient une expression comme argument qui est différente d'un simple nom, il renvoie simplement l'expression ?
toujours?