variables, símbolos y nombresEn JSL, ¿cuál es la diferencia entre una variable, un "símbolo" y un "nombre"?
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"
Automatización y scriptingRe: variables, símbolos y nombresHm, los nombres son más que simples variables.
Por ejemplo, si un nombre va seguido de () , se considera una función :
https://www.jmp.com/support/help/es/19.0/#page/jmp/rules-for-resolving-names.shtml
Y para borrarlo o eliminarlo, nuevamente hay que considerarlo como un símbolo:
f = function({}, print(hello));
Delete Symbols(f);
is empty(f)
Re: variables, símbolos y nombresCómo crear un nombre:
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, símbolos y nombresQuizás mejor:
names default to here(1);
x=1;
Clear Symbols(x);
Name Expr(x);
Name Expr(y);
x es una variable, mejor: un símbolo
(se puede borrar mediante símbolos de borrado() )
En Nombre expr(x) , JMP toma tu NOMBRE "x" [¡quién sabe si es un símbolo !], aplica las reglas: https://www.jmp.com/support/help/es/19.0/#page/jmp/rules-for-resolving-names.shtml , descubre que x es un símbolo en el espacio de nombres aquí y devuelve la expresión almacenada en este símbolo.
En Nombre expr(y) , JMP toma tu NOMBRE " y ", aplica las reglas: https://www.jmp.com/support/help/es/19.0/#page/jmp/rules-for-resolving-names.shtml , no encuentra nada y devuelve el nombre.
Hasta ahora pensé,
names default to here(1);
medio:
Almacene los nombres en el espacio de nombres aquí.
Pero en realidad los nombres no se pueden almacenar, ¿son sólo nombres?
Así es:
Busque los nombres en el espacio de nombres aquí - [y si no especifica un espacio de nombres, almacenaré los símbolos allí].
¿A quién le importa? Quizás comprender la lógica original ayude a comprenderla mejor...
y si el nombre expr() obtiene una expresión como argumento que es diferente de un nombre simple, ¿simplemente devuelve la expresión?
¿siempre?