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