Re: Pure functions and Select[] sequential elements of list
- To: mathgroup at smc.vnet.net
- Subject: [mg119331] Re: Pure functions and Select[] sequential elements of list
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Tue, 31 May 2011 07:45:23 -0400 (EDT)
Here's an unusual solution: Clear[f, g] mList = {1, 2, 3, 4, 5, 7, 6, 8}; First@Last@ Reap@ListConvolve[Most@mList, Reverse@Rest@mList, {-1, 1}, 0, Greater[##] && Sow@#1 &, List] {7} Bobby On Mon, 30 May 2011 05:36:55 -0500, Scot T. Martin <smartin at seas.harvard.edu> wrote: > I agree that this kind of functionality is not easily accessed in > Mathematica. It seems to be a common need that requires some obscure > formulation to get the needed effect, at least so far as I have figured > out. Here are two examples of what I use: > > 1. I sometimes use Partition[...] first to get this effect: > > mList Partition[{1, 2, 3, 4, 5, 7, 6, 8}, 2, 1]; > First /@ Select[mList, (#[[1]] > #[[2]]) &] > > 2. Pattern matching can also do the trick, though can be slow depending > on the size of your task. > > mList = {1, 2, 3, 4, 5, 7, 6, 8}; > ReplaceList[mList, Rule[{___, firstValue: _, secondValue: _, ___} /; > (firstValue> secondValue), firstValue]] > > > > ________________________________________ > From: McHale, Paul [Paul.McHale at excelitas.com] > Sent: Sunday, May 29, 2011 07:38 > To: mathgroup at smc.vnet.net > Subject: [mg119325] [mg119298] Pure functions and Select[] sequential > elements of list > > 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 ;) > > Best Regards, > Paul > > > Paul McHale | Electrical Engineer, Energetics Systems | Excelitas > Technologies Corp. > > Phone: +1 937.865.3004 | Fax: +1 937.865.5170 | Mobile: +1 > 937.371.2828 > 1100 Vanguard Blvd, Miamisburg, Ohio 45342-0312 USA > Paul.McHale at Excelitas.com<mailto:Paul.McHale at perkinelmer.com> > www.excelitas.com<http://www.excelitas.com> > > [cid:image001.png at 01CB9136.E3D96D90] > > Please consider the environment before printing this e-mail. > This email message and any attachments are confidential and proprietary > to Excelitas Technologies Corp. If you are not the intended recipient of > this message, please inform the sender by replying to this email or > sending a message to the sender and destroy the message and any > attachments. > Thank you > -- DrMajorBob at yahoo.com