Manipulating Symbols and Contexts by Name
| Symbol["name"] | construct a symbol with a given name |
| SymbolName[symb] | find the name of a symbol |
Converting between symbols and their names.
Out[1]//InputForm= |
| |  |
|
Out[2]//InputForm= |
| |  |
|
This gives the symbol x again.
Out[3]//InputForm= |
| |  |
|
Once you have made an assignment such as
x=2, then whenever
x is evaluated, it is replaced by
2. Sometimes, however, you may want to continue to refer to
x itself, without immediately getting the value of
x.
You can do this by referring to
x by name. The name of the symbol
x is the string
"x", and even though
x itself may be replaced by a value, the string
"x" will always stay the same.
The names of the symbols x and xp are the strings "x" and "xp".
Out[4]//InputForm= |
| |  |
|
This assigns a value to x.
| Out[5]= |  |
|
Whenever you enter x it is now replaced by 2.
Out[6]//InputForm= |
| |  |
|
The name "x" is not affected, however.
Out[7]//InputForm= |
| |  |
|
| NameQ["form"] | test whether any symbol has a name which matches form |
| Names["form"] | give a list of all symbol names which match form |
| Contexts["form`"] | give a list of all context names which match form |
Referring to symbols and contexts by name.
x and xp are symbols that have been created in this Mathematica session; xpp is not.
| Out[8]= |  |
|
You can specify the form of symbol names using
string patterns of the kind discussed in
"String Patterns".
"x*" stands, for example, for all names that start with
x.
This gives a list of all symbol names in this Mathematica session that begin with x.
Out[9]//InputForm= |
| |  |
|
These names correspond to built-in functions in Mathematica.
Out[10]//InputForm= |
| |  |
|
This asks for names "close" to WeierstrssP.
| Out[11]= |  |
|
| Clear["form"] | clear the values of all symbols whose names match form |
| Clear["context`*"] | clear the values of all symbols in the specified context |
| Remove["form"] | remove completely all symbols whose names match form |
| Remove["context`*"] | remove completely all symbols in the specified context |
Getting rid of symbols by name.
This clears the values of all symbols whose names start with x. |
The name "x" is still known, however.
| Out[13]= |  |
|
But the value of x has been cleared.
| Out[14]= |  |
|
This removes completely all symbols whose names start with x. |
Now not even the name "x" is known.
| Out[16]= |  |
|
| Remove["Global`*"] | remove completely all symbols in the Global` context |
Removing all symbols you have introduced.
If you do not set up any additional contexts, then all the symbols that you introduce in a
Mathematica session will be placed in the
Global` context. You can remove these symbols completely using
Remove["Global`*"]. Built-in
Mathematica objects are in the
System` context, and are thus unaffected by this.