Re: Lists

*To*: mathgroup at yoda.physics.unc.edu*Subject*: Re: Lists*From*: "Katherine (Williams) Derbyshire" <kewms at kew.com>*Date*: Sat, 30 Jan 1993 09:21:21 EST

On Fri, 29 Jan 93 12:48:49 -0800, "John Lee" <lee at math.washington.EDU> wrote: > neilb at physics.su.oz.au (RiemannZeta(s)) write: > > >In[5]:= l={x,z,y,0,0} > > > > > >Out[5]= {x, z, y, 0, 0} > > > > > >In[6]:= l/.l[[Length[l] ]]->l[[Length[l] ]]+1 > > > > > >Out[6]= {x, z, y, 1, 1} > > > > > which is curious. Does anybody know why > > this doesn't produce > > {x,y,z,0,1}? > This explains why you got the result you did. One function you might use > here is AddTo (which can be abbreviated +=). For example: > > In[4]:= l={x,z,y,0,0} > > Out[4]= {x, z, y, 0, 0} > > In[5]:= l[[ Length[l]] ] += 1 Why fuss with using Length[] to find the end of the list? What about Last[l], Part[l, -1], or even ReplacePart[l, ++#&, -1]? I'm not sure the syntax for ReplacePart is right, since I don't have Mma running at the moment, but it looks like using it in some way is probably the most efficient (and easiest to read). Katherine -- Katherine (Williams) Derbyshire kewms at kew.com A mouse is an elephant designed by the Japanese.