Re: functional routine for {a, b, c, ...} -> {a - b, b - c, c - ...}
- To: mathgroup at smc.vnet.net
- Subject: [mg24945] Re: functional routine for {a, b, c, ...} -> {a - b, b - c, c - ...}
- From: "Marcel_Mueller" <mueller at elektron.ikp.physik.tu-darmstadt.NoSpam.de>
- Date: Thu, 24 Aug 2000 05:08:17 -0400 (EDT)
- Organization: Technische Universitaet Darmstadt
- References: <8nli50$9fa@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hello Maarten.vanderBurgt at icos.be schrieb in Nachricht <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? The Scan and Map operations can only use funtions of single list elements. If you want functions of more than one element you need a specially prepared list or an operation applied to the hole list. The straight forward way for the 'derviative' is lst-RotateLeft[lst] or #-RotateLeft[#]&[l] (Maybe you want to remove the last element) Marcel