MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

SymbolName question

  • To: mathgroup at
  • Subject: [mg61794] SymbolName question
  • From: "Matt" <anonmous69 at>
  • Date: Sun, 30 Oct 2005 00:43:23 -0400 (EDT)
  • Sender: owner-wri-mathgroup at

   It seems that if I want to print the 'name' of a symbol, that I need
to save it in a variable before I actually use it.  Is this expected
behaviour?  It would be imminently more useful if I could give any
symbol to SymbolName and it would give me a string representation of
the variable name.

a1Name = SymbolName[a1];
a1 = Array[r, {2, 2, 2}];
Print["The symbol ", a1Name, " has a value of ", a1];

works, but if I try this:

a1 = Array[r, {2, 2, 2}];
Print["The symbol ", SymbolName[a1], " has a value of ", a1];

it doesn't, and I get the following error:
SymbolName::sym : Argument {nested list} at position 1 is expected to
be a symbol.  More...

The online help states the following:
"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

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

This seems to indicate that what I want to accomplish should in fact
work without the need to first save the string representation of a
symbol name before any value is assigned to it.

5.1 for Microsoft Windows (October 25, 2004)



  • Prev by Date: Default argument and conditional pattern question
  • Next by Date: this is ridiculous...
  • Previous by thread: Re: Default argument and conditional pattern question
  • Next by thread: Re: SymbolName question