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
This gives the symbol
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
are the strings
This assigns a value to
Whenever you enter
it is now replaced by
is not affected, however.
|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.
are symbols that have been created in this Mathematica
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
These names correspond to built-in functions in Mathematica
This asks for names "close" to
|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
is still known, however.
But the value of
has been cleared.
This removes completely all symbols whose names start with
Now not even the name
|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.