Re: alternating sums
- To: mathgroup at christensen.Cybernetics.NET
- Subject: [mg326] Re: [mg307] alternating sums
- From: Roman Maeder <maeder at inf.ethz.ch>
- Date: Mon, 12 Dec 1994 17:02:13 +0100
> Here's an elementary question that has me partially stumped. I often
> have occasion to convert mylist = {a1,a2,a3,...} into an alternating sum,
> a1-a2+a3-a4+... . I find it aesthetically unsatisfactory to generate a
> list of alternating plus and minus ones, multiply mylist with the
> alternating list and then Apply Plus to the product. It works of course,
> but I have a feeling there is a much better way to do this.
> (This is clearly not of earthshaking importance!!. I'm just curious.)
A variant of Fold does it nicely:
In[12]:= AlternatingSum[l_List] := -(-1)^Length[l] Fold[#2-#1&, 0, l]
In[13]:= AlternatingSum[{a1, a2, a3, a4}]
Out[13]= a1 - a2 + a3 - a4
Roman Maeder