Problems with Evaluate[Symbol[xxx]]
- To: mathgroup at smc.vnet.net
- Subject: [mg102759] Problems with Evaluate[Symbol[xxx]]
- From: Keelin <keelinm at gmail.com>
- Date: Wed, 26 Aug 2009 07:44:06 -0400 (EDT)
Hi,
I'm trying to use the Evaluate[Symbol[xxx]] syntax but I think I am
misunderstanding something as it is not behaving as I expect. Below
is an example to illustrate what is unexpected:
The questions are:
1) Is there a problem with line 604 - it gives errors, but yet the
output in the end is correct
2) Why are the output of abc and the output of Evaluate[Symbol
[myListIdentifier]] not regarded as equal even though they appear
identical (See line 608)
3) Why can I append correctly using the reference name abc, but not
using the Evaluate[Symbol[myListIdentifier]] name? This is what I
really want to do in the end - append to a list which has a
dynamically assigned variable name.
Thanks!!
In[602]:= (*Make an identifier string to hold some data*)
myListIdentifier = "abc"
Out[602]= "abc"
In[603]:= (*here's the data*)
myList = {{7, 8}}
Out[603]= {{7, 8}}
In[604]:= (*Now put the data into a variable with name abc*)
Evaluate[Symbol[myListIdentifier]] = myList
During evaluation of In[604]:= Set::setraw: Cannot assign to raw \
object 7. >>
During evaluation of In[604]:= Set::setraw: Cannot assign to raw \
object 8. >>
Out[604]= {{7, 8}}
In[605]:=
(*Check abc holds the correct data*)
abc
Out[605]= {{7, 8}}
In[606]:= (*Check the data can also be accessed using the \
myListIdentifier*)
In[607]:= Evaluate[Symbol[myListIdentifier]]
Out[607]= {{7, 8}}
In[608]:= (*But apparently the two items are not equal... why??*)
abc == Evaluate[Symbol[listIdentifier]]
Out[608]= False
In[609]:= (*Even worse, I can append using the reference abc, but not
\
using the myListIdentifier*)
Append[abc, {3}]
Out[609]= {{7, 8}, {3}}
In[610]:= Append[Evaluate[Symbol[listIdentifier]], {3}]
Out[610]= {{3}}