Mathematica 9 is now available
 Documentation / Mathematica / The Mathematica Book / Principles of Mathematica / Modularity and the Naming of Things  /

2.6.12 Manipulating Symbols and Contexts by Name


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=


    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.7.3. "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]=


    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]=


    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 NowMore Information
    THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
    SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.