Re: functional routine for {a, b, c, ...} -> {a - b, b - c, c - ...}
- To: mathgroup at smc.vnet.net
- Subject: [mg24933] Re: functional routine for {a, b, c, ...} -> {a - b, b - c, c - ...}
- From: "Paul R. Wellin" <wellin at wolfram.com>
- Date: Tue, 22 Aug 2000 16:22:43 -0400 (EDT)
- References: <8nli50$9fa@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Although I don't think it is any more intuitive than what you have below, here is a functional approach: In[1]:= lis = {a, b, c, d, e, f, g, h}; In[2]:= p = Partition[lis, 2, 1] Out[2]= {{a, b}, {b, c}, {c, d}, {d, e}, {e, f}, {f, g}, {g, h}} In[3]:= Apply[Subtract, p, 2] Out[3]= {a - b, b - c, c - d, d - e, e - f, f - g, g - h} Here it is in one step: In[4]:= Apply[Subtract, Partition[lis, 2, 1], 2] Out[4]= {a - b, b - c, c - d, d - e, e - f, f - g, g - h} Paul Wellin Wolfram Research, Inc. <Maarten.vanderBurgt at icos.be> wrote in message news:8nli50$9fa at smc.vnet.net... > Hallo, > > element. > I found two ways for doing this: > > lst = {a, b, c, d, e, f, g, h}; > > Table[lst[[i]] - lst[[i + 1]], {i, 1, Length[lst] - 1}] > {a - b, b - c, c - d, d - e, e - f, f - g, g - h} > > ListCorrelate[{1, -1}, lst] > {a - b, b - c, c - d, d - e, e - f, f - g, g - h} > > The first method is rather clumsy and the 2nd one is quite short, but not > really obvious. > Initally I was looking for a functional programming style routine. > Something like: (#[[i]]-#[[i-1]])&/@lst. > Who can tell me how to do this in a functional programming style? > > Thanks > > Maarten van der Burgt > Leuven, Belgium > > >