Re: List difference using patterns and substitutions.
- To: mathgroup at smc.vnet.net
- Subject: [mg71316] Re: List difference using patterns and substitutions.
- From: "dimitris" <dimmechan at yahoo.com>
- Date: Wed, 15 Nov 2006 06:43:00 -0500 (EST)
- References: <ejc53g$6qf$1@smc.vnet.net>
Here are some ways to get from {1,2,3,5,5}->{1,1,2,0} lst = {1, 2, 3, 5, 5} {1, 2, 3, 5, 5} (*1st*) Plus[#2-#1]&@@@Partition[lst,2,1] {1,1,2,0} where Apply[Plus,{{a,b},{c,d},{e,f}},{1}]\[Equal]Plus@@@{{a,b},{c,d},{e,f}} True execute FrontEndExecute[{HelpBrowserLookup["RefGuide", "Apply"]}] (*2*) (#1[[2]] - #1[[1]] & ) /@ Partition[lst, 2, 1] {1, 1, 2, 0} execute FrontEndExecute[{HelpBrowserLookup["RefGuide", "Map"]}] (*3*) Partition[lst, 2, 1] /. {x_, y_} -> y - x {1, 1, 2, 0} execute FrontEndExecute[{HelpBrowserLookup["RefGuide", "Partition"]}] Best Regards Dimitris Nacho wrote: > Hello. > > I'm trying to figure how can I build a difference list from another > using only patterns and rule substitutions. > > The idea is to get from a list, another, one element shorter, where > each value is the substraction of two consecutive elements in the > original list, that is, from {1,2,3,5,5} get {1,1,2,0}. > > I've been thinking about it for a while, and I know several methods > using a more traditional programming style (with For, for example), but > I have no idea if it is possible to make it simple and fast with rule > substitutions. > > Any idea? > > Thanks in advance.