       Re: Style Question: The Functional Way

• To: mathgroup at smc.vnet.net
• Subject: [mg115823] Re: Style Question: The Functional Way
• From: Bob Hanlon <hanlonr at cox.net>
• Date: Fri, 21 Jan 2011 04:35:22 -0500 (EST)

```DeltaList[L_] := Subtract @@@ Reverse /@ Partition[L, 2, 1]

data = Array[x, 10];

The simplest way is to just use Differences or ListCorrelate.

DeltaList[data] ==
Differences[data] ==
ListCorrelate[{-1, 1}, data] ==
Most[RotateLeft[data] - data] ==
({-1, 1}.# & /@ Partition[data, 2, 1])

True

Bob Hanlon

---- Just A Stranger <forpeopleidontknow at gmail.com> wrote:

=============
Hello,

So I'm trying to learn how to do things the functional way. As an exercise
I'm trying to program a simple economics related table that gives revenue,
marginal revenue, etc given a demand schedule (2 lists of numbers
representing quantity and price respectively). A simple task in a

The point is that I need a list of the differences in the given lists, from
which I will be using to get marginal values (derivatives). I'll call it,
say, DeltaList, and I was wondering if this would be a proper "functional"

In: DeltaList[L_] := Subtract @@@ Reverse /@ Partition[L, 2, 1]

(DelatList: list -> list)

Basically, it partitions the list into ordered pairs, reverses those ordered
pairs to prep them for the subsequent Subtract application.