|
[Date Index]
[Thread Index]
[Author Index]
Re: Pattern Matching
- To: mathgroup at smc.vnet.net
- Subject: [mg58243] Re: Pattern Matching
- From: "Carl K. Woll" <carlw at u.washington.edu>
- Date: Fri, 24 Jun 2005 02:50:04 -0400 (EDT)
- Organization: University of Washington
- References: <d9e0bc$g6i$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
"Jeff" <jmcolon at gmail.com> wrote in message
news:d9e0bc$g6i$1 at smc.vnet.net...
> Given a list of numbers, t = {0, -1, 0, -1, -2, -3, -4,-3,-4,-5}, I
> would like to extract those numbers that are less than or equal to the
> starting value by, for example, at least 2, but once the first (and
> each subsequent) match is found, I would the starting value to drop by
> 2. So for the list t, the output would be {-2, -4}.
>
> I can use Cases or map using If[ ] on the list to extract those
> elements that are less than or equal to -2, but I'm having difficutly
> in figuring out how to change the starting value to be applied to
> subsequent elements of the list.
>
> Given my example, I could just extract all the multiples of 2 in the
> list, but I would like the starting value to change by a fixed
> percentage or combination of fixed number and percentage.
>
> Thanks,
> Jeff
>
One possibility is to use Reap and Sow:
In[10]:=
s=First[t];
Reap[If[#\[LessEqual]s-2,Sow[#];s=s-2]&/@t][[2,1]]
Out[11]=
{-2,-4}
Carl Woll
Wolfram Research
Prev by Date:
Documentation
Next by Date:
Re: Asking questions
Previous by thread:
Re: Pattern Matching
Next by thread:
Re: Pattern Matching
|