variabili, simboli e nomiin JSL, qual è la differenza tra una variabile, un "simbolo" e un "nome"?
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"
Automazione e scriptingRe: variabili, simboli e nomiHm, i nomi sono più che semplici variabili.
ad esempio se un nome è seguito da () , è considerato una funzione :
https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtml
E per cancellarlo o eliminarlo, bisogna ancora una volta considerarlo un simbolo:
f = function({}, print(hello));
Delete Symbols(f);
is empty(f)
Re: variabili, simboli e nomiCome creare un nome:
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: variabili, simboli e nomiForse meglio:
names default to here(1);
x=1;
Clear Symbols(x);
Name Expr(x);
Name Expr(y);
x è una variabile, meglio: un simbolo
(può essere cancellato tramite cancella i simboli() )
In Nome expr(x) , JMP prende il NOME "x" [come sapere se è un simbolo !], applica le regole: https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtml , rileva che x è un simbolo nello spazio dei nomi here e restituisce l'espressione memorizzata in questo simbolo.
In Nome expr(y) , JMP prende il tuo NOME " y " e applica le regole: https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtml , non trova nulla e restituisce il nome.
Finora pensavo,
names default to here(1);
significa:
memorizzare i nomi nello spazio dei nomi here.
Ma in realtà i nomi non possono essere memorizzati, sono solo nomi?
Quindi è:
Cerca i nomi nello spazio dei nomi qui - [e se non specifichi uno spazio dei nomi, memorizzerò i simboli lì].
A chi importa? Forse capire la logica originale aiuta a seguirla meglio...
e se nome expr() riceve come argomento un'espressione diversa da un semplice nome, restituisce semplicemente l'espressione?
Sempre?