Maybe better:
names default to here(1);
x=1;
Clear Symbols(x);
Name Expr(x);
Name Expr(y);
x is a variable, better: a symbol
(can be cleared via clear symbols())
In Name expr(x), JMP takes thy NAME "x" [how knows if it's a symbol!], applies the rules: https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtml , finds out that x is a symbol in the here namespace and returns the expression stored in this symbol.
In Name expr(y), JMP takes thy NAME "y", applies the rules: https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtml , doesn't find anything and returns the name.
Up to now, I thought,
names default to here(1);
means:
store the names in the here namespace.
But actually, names cannot be stored, they are just names?
So it is:
Look up the names in the here namespace - [and if you don't specify a namespace, I will store the symbols there].
Who cares? Maybe understanding the original logic helps to better follow the logic ...
and if name expr() gets an expression as an argument that is different from a simple name, it just returns the expression?
always?