There are a number of factors in resolving a named variable reference. Table 7.7 describes the named variable references that are resolved for specific situations.
•
|
In JMP 9 and later, a, :a, and ::a have the same meaning with the Names Default To Here mode turned off.
|
•
|
If the current point of execution is in a user-defined function, or a Local or Parameter JSL function body, then the Local namespace is used for creation when Default Local is specified. However, the reference rule is unchanged.
|
If the Names Default To Here mode is on, JMP looks for the variable in these locations:
If the Names Default To Here mode is off, JMP looks for the variable in these locations:
|
|
||||||||||||||||
JMP looks for the variable in the Global namespace.
|
JMP creates the variable in the Global namespace.
|
||||||||||||||||
JMP looks for the variable in the encapsulating New Window window namespace.
|
JMP creates the variable in the encapsulating New Window window namespace.
|
||||||||||||||||
JMP looks for the variable in the encapsulating Context Box namespace contained in a New Window window.
|
JMP creates the variable in the encapsulating Context Box namespace contained in a New Window window.
|
Delete Symbols();
Local( {d1l1 = 12}, local:f1f1 = Function( {fa1, fa2}, {fl1 = 99}, local:fa12 = fa1 + fa2; Local( {d2l1 = 56}, local:l2l2 = 78; Show( fa12 ); Show( fl1 ); Try( Show( d1l1 ), Write( "\!n\!n***Error=" || Char( exception_msg ) || "\!n" ) ); Show Symbols(); ); local:fa12; ); f1f1( 2, 3 ); ); |
fa12 = 5;
fl1 = 99;
***Error={"Name Unresolved: d1l1"(1, 2, "d1l1", d1l1 /*###*/)}
// Local
d2l1 = 56;
l2l2 = 78;
// 2 Local
// Local
fa1 = 2;
fa12 = 5;
fa2 = 3;
fl1 = 99;
// 4 Local
// Local
d1l1 = 12;
// 1 Local
// Global
exception_msg = {"Name Unresolved: d1l1"(1, 2, "d1l1", d1l1/*###*/)};
// 1 Global
5
|