Wolfram ResearchPRODUCTSPURCHASEFOR USERSCOMPANYOUR SITES
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Previous section-----Next section

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

In[1]:=  x // InputForm

Out[1]//InputForm=

Its name is a string.

In[2]:=  SymbolName[x] // InputForm

Out[2]//InputForm=

This gives the symbol x again.

In[3]:=  Symbol["x"] // InputForm

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

In[4]:=  t = {SymbolName[x], SymbolName[xp]} // InputForm

Out[4]//InputForm=

This assigns a value to x.

In[5]:=  x = 2

Out[5]=

Whenever you enter x it is now replaced by 2.

In[6]:=  {x, xp} // InputForm

Out[6]//InputForm=

The name "x" is not affected, however.

In[7]:=  t // InputForm

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.

In[8]:=  {NameQ["x"], NameQ["xp"], NameQ["xpp"]}

Out[8]=

You can specify the form of symbol names using string patterns of the kind discussed in Section 2.8.4. "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.

In[9]:=  Names["x*"] // InputForm

Out[9]//InputForm=

These names correspond to built-in functions in Mathematica.

In[10]:=  Names["Qu*"] // InputForm

Out[10]//InputForm=

This asks for names "close" to WeierstrssP.

In[11]:=  Names["WeierstrssP", SpellingCorrection->True]

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.

In[12]:=  Clear["x*"]

The name "x" is still known, however.

In[13]:=  Names["x*"]

Out[13]=

But the value of x has been cleared.

In[14]:=  {x, xp}

Out[14]=

This removes completely all symbols whose names start with x.

In[15]:=  Remove["x*"]

Now not even the name "x" is known.

In[16]:=  Names["x*"]

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.


Any questions about topics on this page? Click here to get an individual response.Buy NowFree TrialMore Information



 © 2009 Wolfram Research, Inc.  Terms of Use  Privacy Policy |
Sign up for our newsletter: