Re: basic issue with do and :=

*To*: mathgroup at smc.vnet.net*Subject*: [mg60444] Re: basic issue with do and :=*From*: "dkr" <dkrjeg at adelphia.net>*Date*: Fri, 16 Sep 2005 03:50:39 -0400 (EDT)*References*: <dgbevg$fol$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

>> Is there any compact way to define: "b[i] :=a[i]+1" for all i ? Use a pattern variable on the lefthand side: In[8]:= a[i_]:=i; b[i_]:=a[i]+1; In[10]:= Table[{a[i],b[i]},{i,10}] Out[10]= {{1,2},{2,3},{3,4},{4,5},{5,6},{6,7},{7,8},{8,9},{9,10},{10,11}} In your expression Do[b[i] :=a[i]+1, {i, 10}] , what is happening is that i gets set to a certain value, that value is then fed to b[i] (but not a[i]+1, since SetDelayed does not immediately evaluate its righthand side.