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.
Here is the symbol

.
Out[1]//InputForm= |
| |  |
Out[2]//InputForm= |
| |  |
This gives the symbol

again.
Out[3]//InputForm= |
| |  |
Once you have made an assignment such as
, then whenever
is evaluated, it is replaced by
. Sometimes, however, you may want to continue to refer to
itself, without immediately getting the value of
.
You can do this by referring to
by name. The name of the symbol
is the string
, and even though
itself may be replaced by a value, the string
will always stay the same.
The names of the symbols

and

are the strings

and

.
Out[4]//InputForm= |
| |  |
This assigns a value to

.
| Out[5]= |  |
Whenever you enter

it is now replaced by

.
Out[6]//InputForm= |
| |  |
The name

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.

and

are symbols that have been created in this
Mathematica session;

is not.
| Out[8]= |  |
You can specify the form of symbol names using string patterns of the kind discussed in "String Patterns".
stands, for example, for all names that start with
.
This gives a list of all symbol names in this
Mathematica session that begin with

.
Out[9]//InputForm= |
| |  |
These names correspond to built-in functions in
Mathematica.
Out[10]//InputForm= |
| |  |
This asks for names "close" to

.
| 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

.
The name

is still known, however.
| Out[13]= |  |
But the value of

has been cleared.
| Out[14]= |  |
This removes completely all symbols whose names start with

.
Now not even the name

is known.
| Out[16]= |  |
| Remove["Global`*"] | remove completely all symbols in the 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
context. You can remove these symbols completely using Remove["Global`*"]. Built-in Mathematica objects are in the
context, and are thus unaffected by this.