MathGroup Archive 2002

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

Search the Archive

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



  • Prev by Date: Re: rectangle intersection
  • Next by Date: Re: function mySet[]
  • Previous by thread: Re: function mySet[]
  • Next by thread: Re: function mySet[]