@lwx228 is incorrect. One can have a variable and a column with the same name. It is actually just a matter of scoping the name correctly, so JMP knows which you are talking about
Take the following script
dt=new table("Example", new column("A") );
dt << add rows(1);
a = 13;
:: a =47;
:a[1] = a;
show(a,::a,:a[1],dt:a[1]);
It results in
a = 47;
a = 47;
:A[1] = 47;
dt:a[1] = 47;
What is going on here is that actually, all variables and columns have a 2 part name, separated by a colon ":"
namespace:name
and by default, if only a name is given such as in the assignment statement
a = 13;
it is assumed that "a" is a variable. If a colon is placed in front of the variable name,
:a[1] = a;
it is assumed one is referring to a column. In the above example the 1st row in the column named "a" will be given the current value (13) of the variable named "a".
One can also provide the complete 2 part name for a variable and a column.
For variables, the default namespace (first part of the name) is called ":". That's right, a colon, so the full proper name for the variable "a" is
::a
you can see the results of using the full name in the Show() statement and it's results
The full proper name for a column in this little script, is made up of the pointer variable assigned to the data table, and the actual data table column name
dt:a
The Show() statement also illustrates the 2 part name usage for a column
I hope this has not just confused everyone, but instead has given some insight
Jim