Re: Question on using Table in module
- To: mathgroup at smc.vnet.net
- Subject: [mg67913] Re: Question on using Table in module
- From: dh <dh at metrohm.ch>
- Date: Wed, 12 Jul 2006 05:39:32 -0400 (EDT)
- References: <e92e9m$lqi$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Nag,
Mathematica evaluates function arguments before calling a function.
Therefore, the function sees {1,0} and you try: {1,0}[[2]]=40 what is
0=40 and this is nonsense.
You must prevent the evaluation of the first argument, e.g. by:
SetAttributes[b, HoldFirst]
Daniel
Nag wrote:
> Hello:
>
> Look at the following code fragment.
>
> a = {1, 0}
> b[x_,n_,d_]:=Module[{i},x[[n]]=d];
> b[a,2,40]
>
> ?a
> a = {1, 0}
>
> Executing gives the error message:
> Set::setps: {1, 0} in assignment of part is not a symbol.
>
> I followed the link to the Help browser, but do not understand the
> explanation.
>
> What is happening here? Please help.
>
> Best
> Nag
>