変数、記号、名前JSL では、変数、"シンボル"、"名前" の違いは何ですか?
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"
自動化とスクリプト変数、シンボル、名前についてうーん、名前は単なる変数以上のものなのですね。
たとえば、名前の後に()が続く場合は、関数とみなされます。
https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtml
そしてそれをクリアまたは削除するには、再びそれをシンボルとして考慮する必要があります。
f = function({}, print(hello));
Delete Symbols(f);
is empty(f)
変数、シンボル、名前について名前の作成方法:
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])
変数、シンボル、名前についておそらくもっと良いのは:
names default to here(1);
x=1;
Clear Symbols(x);
Name Expr(x);
Name Expr(y);
xは変数、より正確にはシンボルである
( clear symbol()でクリアできます)
名前 expr(x)では、JMP は NAME "x" (シンボルかどうかはどうやってわかるのでしょうか !) を受け取り、次の規則を適用します。 https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtmlは、 xが here 名前空間内のシンボルであることを検出し、このシンボルに格納されている式を返します。
名前式(y)では、JMPはNAME「 y 」を取り、次の規則を適用します。 https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtmlでは何も見つからず、名前が返されます。
これまで私は、
names default to here(1);
手段:
名前を here 名前空間に保存します。
しかし、実際には、名前は保存できず、単なる名前なのでしょうか?
つまり、次のようになります。
ここの名前空間で名前を検索します - [名前空間を指定しない場合は、そこにシンボルを保存します]。
誰が気にする?元のロジックを理解することで、ロジックをよりよく理解できるようになるかもしれない...
name expr() が単純な名前とは異なる式を引数として受け取った場合、その式を返すだけでしょうか?
いつも?