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.13 Advanced Topic: Intercepting the Creation of New Symbols

Mathematica creates a new symbol when you first enter a particular name. Sometimes it is useful to "intercept" the process of creating a new symbol. Mathematica provides several ways to do this.

On[General::newsym] print a message whenever a new symbol is created
Off[General::newsym] switch off the message printed when new symbols are created

Printing a message when new symbols are created.
This tells Mathematica to print a message whenever a new symbol is created.

In[1]:=  On[General::newsym]

Mathematica now prints a message about each new symbol that it creates.

In[2]:=  sin[k]

Out[2]=

This switches off the message.

In[3]:=  Off[General::newsym]

Generating a message when Mathematica creates a new symbol is often a good way to catch typing mistakes. Mathematica itself cannot tell the difference between an intentionally new name, and a misspelling of a name it already knows. But by reporting all new names it encounters, Mathematica allows you to see whether any of them are mistakes.

$NewSymbol a function to be applied to the name and context of new symbols which are created

Performing operations when new symbols are created.

When Mathematica creates a new symbol, you may want it not just to print a message, but instead to perform some other action. Any function you specify as the value of the global variable $NewSymbol will automatically be applied to strings giving the name and context of each new symbol that Mathematica creates.

This defines a function to be applied to each new symbol which is created.

In[4]:=  $NewSymbol = Print["Name: ", #1, " Context: ", #2]&

Out[4]=

The function is applied once to v and once to w.

In[5]:=  v + w



Out[5]=


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: