Re: help with new symbols (or pointers)
- To: mathgroup at smc.vnet.net
- Subject: [mg92426] Re: help with new symbols (or pointers)
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Tue, 30 Sep 2008 21:50:43 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <gbt2t4$lfo$1@smc.vnet.net>
ag wrote:
> Hi,
>
> I want to create new symbols inside a module & assign them values=85
>
> e.g. something like: Symbol[=93x=94<>"num"] = 5
> It is not working=85
>
> The problem is that I dont know how many symbols I would need (it
> could be 5, 50 or 5000)... So I cannot do something like:
> Symbol["x"<>"1"];
> x1=5;
>
> Is there anything in Mathematica which is like pointers in C
> (something which would assign a value to a given location in memory)?
>
> Any help would be appreciated!
The following should help:
Do[Set[Evaluate[Symbol["var" <> ToString[num]]], 2 num], {num, 3}]
Do[Print[Symbol["var" <> ToString[num]]], {num, 3}]
2
4
6
Note that the assignment operator '=' is written in fullform Set and it
has the attribute *HoldFirst* that prevents the immediate evaluation of
its first argument (so we force it thanks to the function *Evaluate*).
Also, *ToString* transforms an expression (a number in our case) into a
string of characters.
Regards,
-- Jean-Marc