Re: function mySet[]
- To: mathgroup at smc.vnet.net
- Subject: [mg36123] Re: [mg36096] function mySet[]
- From: Andrzej Kozlowski <andrzej at lineone.net>
- Date: Thu, 22 Aug 2002 04:33:00 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Sorry, I got confused about what you were trying to do. Here is another attempt, which I think this time works: In[1]:= a = { 1, 2, 3, 4, 5 }; In[2]:= mySet[ s_String ] := With[{t=(Clear[Unevaluated[s]];Symbol[s])},t={ 2, 3, 4, 5, 6 }] In[3]:= mySet[ SymbolName[ Unevaluated[a] ] ]; In[4]:= a Out[4]= {2,3,4,5,6} Andrzej Kozlowski Toyama International University JAPAN On Wednesday, August 21, 2002, at 09:30 PM, Andrzej Kozlowski wrote: > One simple approach is to use Module: > > In[1]:= > a = { 1, 2, 3, 4, 5 }; > > In[2]:= > mySet[ s_String ] :=Module[{t=Symbol[s]},t={ 2, 3, 4, 5, 6 }] > > In[3]:= > mySet[ SymbolName[ Unevaluated[a] ] ]; > > > In[4]:= > a > Out[4]= > {1,2,3,4,5} > > Note that "Unevaluated" is needed since SymbolName evaluates its input. > > > > > On Wednesday, August 21, 2002, at 10:52 AM, Prof. Korvink wrote: > >> I am struggling with a problem: >> >> I would like to have a function mySet[] that takes a string argument >> that is the correct string name of a "variable" and is able to >> make assignments to that variable. Naively: >> >> a = { 1, 2, 3, 4, 5 }; >> mySet[ s_String ] := >> Symbol[ s ] = { 2, 3, 4, 5, 6 }; (* ERRONEOUS! *) >> mySet[ SymbolName[ a ] ]; >> a >> >> should give: >> >> { 2, 3, 4, 5, 6 } >> >> The problem is that Symbol[ s ] immediately evaluates to a List >> and I cannot for the love of anything generate an expression that >> evaluates to the actual unevaluated symbol. >> I have tried many variants with HoldAll and so on, with no luck, >> hopefully only out of ignorance. >> >> What sometimes works (but circumstances is erratic!) is to do a: >> >> mySet[ s_String ] := >> Evaluate[ToExpression[StringJoin[s,"={2,3,4,5,6}"]]] >> >> I do not find this a clean way to do things. Can anyone offer some >> insight and perhaps a solution? >> >> Jan Korvink >> >> >> >> >