Re: Map and functional constructs to replace iterative statements

• To: mathgroup at smc.vnet.net
• Subject: [mg96882] Re: Map and functional constructs to replace iterative statements
• From: Albert Retey <awnl at gmx-topmail.de>
• Date: Thu, 26 Feb 2009 08:00:32 -0500 (EST)
• References: <go31ba\$f47\$1@smc.vnet.net>

```Andreas wrote:
> I have begun to replace Table, Do, While, or For, but in my thinking with Map, Inner, Outer and other functional programming constructs as I learn more about Mathematica.
>
> But, I'm stuck.  I need to figure out how to use Map (or some related approach) when a function needs both a current value and a previous value in a time series, such as a percentage change function (or perhaps more generally stated, when I need to refer to previous values in a series or even previous calculations).  But first a simple case:
>
> percentChange[currentValue_, previousValue_] := 100 * ( currentValue - previousValue) / previousValue
>
> I know how to apply this iteratively, but how can I do it with Map or some other functional construct?
>
> Say I have a list: timeSeries
>
> I thought to try something like this:
>
> Map[percentChange[?,?], timeSeries]
>
> but I don't know how what to put in for "?".
>
> Any help much appreciated.
>

This is one possibility do what you want:

percentChange @@@ Partition[timeseries, 2, 1]

Partition will create a list of pairs, @@@ is a short notation for Apply
at level 1. You might want to look at the documentation for Partition
and Apply for more details...

hth,

albert

```

• Prev by Date: Re: N00b help needed: Graphics
• Next by Date: Re: N00b help needed: Graphics
• Previous by thread: Re: Map and functional constructs to replace iterative statements
• Next by thread: Re: Map and functional constructs to replace iterative statements