Re: List element manipulation
- To: mathgroup at smc.vnet.net
- Subject: [mg25457] Re: [mg25408] List element manipulation
- From: Matt.Johnson at autolivasp.com
- Date: Sun, 1 Oct 2000 02:44:40 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Martin- I think the problem you are running into is that Decrement or Increment need a variable to change and store, not just a number. Here's an easy way to decrease the last number by 1, however: In[17]:= lst = Range[116, 164, 8] Out[17]= {116, 124, 132, 140, 148, 156, 164} In[20]:= lst1 = lst /. {h___, t_} -> {h, t - 1} Out[20]= {116, 124, 132, 140, 148, 156, 163} In[21]:= lst2 = lst1 /. {h___, t_} -> {h, t - 1} Out[21]= {116, 124, 132, 140, 148, 156, 162} -matt "Martin Rommel" <Martin_Rommel at mac.com> on 09/28/2000 11:06:58 PM cc: Subject: [mg25457] [mg25408] List element manipulation I want to decrement the last number in list. This ought to be easy, but my initial attempts did not bear fruits: In[40]:= MapAt[Decrement, Range[116, 166, 8], -1] Decrement::"rvalue": "164 is not a variable with a value, so its value cannot be changed." Out[40]= {116, 124, 132, 140, 148, 156, 164--} Do I need to use ReplacePart? That works but still gives me an error! In[53]:= Range[116, 166, 8] // ReplacePart[#, --Last[#], -1] & Set::"write": "Tag Last in Last[{116, 124, 132, 140, 148, 156, 164}] is Protected." Out[53]= {116, 124, 132, 140, 148, 156, 163} Different error here: In[51]:= Range[116, 166, 8] // ReplacePart[#, --#[[-1]], -1] & Set::"setps": "{116, 124, 132, 140, 148, 156, 164} in assignment of part is not a symbol." Out[51]= {116, 124, 132, 140, 148, 156, 163} Anybody out there able to enlighten me? Thanks, Martin