MathGroup Archive 1993

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

Search the Archive

Re: Lists


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

Since the construct l/.b->c evaluates b and c before applying the rule, and
since l[[ Length[l] ]] has the value 0, your expression In[6] is equivalent
to 

  l /. 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

  Out[5]= 1

  In[6]:= l

  Out[6]= {x, z, y, 0, 1}

If you're always adding exactly 1, you might also look at the functions
Increment and PreIncrement.

Jack Lee
Dept. of Mathematics
University of Washington
Seattle, WA






  • Prev by Date: Re: Bug in ANIMATION???
  • Next by Date: Re: Lists
  • Previous by thread: Lists
  • Next by thread: Re: Lists