Re: Pure functions and Select[] sequential elements of list
- To: mathgroup at smc.vnet.net
- Subject: [mg119306] Re: Pure functions and Select[] sequential elements of list
- From: Ray Koopman <koopman at sfu.ca>
- Date: Mon, 30 May 2011 06:33:30 -0400 (EDT)
- References: <irtb73$plj$1@smc.vnet.net>
On May 29, 4:38 am, "McHale, Paul" <Paul.McH... at excelitas.com> wrote: > Hi, > > Does anyone know of a way to use a pure function to access current > and next element of list with uses like Select[]? I know I might > be dazed and confused, but I thought there was a way. I.e. > > mList={1,2,3,4,5,7,6,8}; > Select[mList, (#? > #??)&] > > Where #? Is element N and #?? Is element N+1. I would expect > the previous code (assuming N?, N?? were valid) to return 7. > > Maybe there is no way to do this with a pure function. I know > there are many other ways. This would be one more way to not > require a looping construct to resolve this. If someone knows > of straightforward ways other than Table[] or For[], Do[]... > looping contructs, I would appreciate it the general knowledge. > I constantly struggle against my C language beginning ;) There are many ways to do this. Probably the simplest (but not the fastest) is to Partition the list using an offset: First /@ Select[ Partition[mList,2,1], #[[1]] > #[[2]]& ]