MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Sum pattern

  • To: mathgroup at smc.vnet.net
  • Subject: [mg128296] Re: Sum pattern
  • From: Alexei Boulbitch <Alexei.Boulbitch at iee.lu>
  • Date: Fri, 5 Oct 2012 02:50:47 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net

Hi,

I'm trying to put together a rule whose left hand side is a sum of arbitrar=
y
length whose elements all have the same head f.

For example:

In[4]:= x = f[a1, s] + f[a2, s] + f[a3, s]

Out[4]= f[a1, s] + f[a2, s] + f[a3, s]

In[6]:= y = f[First /@ x, s]

Out[6]= f[a1 + a2 + a3, s]

which is what I want.

However when I turn this into a rule

In[7]:= z = x /. (p : Plus[__f]) -> f[First /@ p, s]

Out[7]= f[f[a1, s], s] + f[f[a2, s], s] + f[f[a3, s], s]

Why isn't z equal to y?
How can I make this rule work?

Thanks in advance,
Dave Snead

Hi, Dave,

It may be done this way:

f[Table[x[[i, 1]], {i, 1, Length[x]}] /. List -> Plus, x[[1, 2]]]

f[a1 + a2 + a3, s]

or, somewhat shorter, like this:

f[First[List @@@ x], x[[1, 2]]]

f[a1 + a2 + a3, s]

Have fun, Alexei

Alexei BOULBITCH, Dr., habil.
IEE S.A.
ZAE Weiergewan,
11, rue Edmond Reuter,
L-5326 Contern, LUXEMBOURG

Office phone :  +352-2454-2566
Office fax:       +352-2454-3566
mobile phone:  +49 151 52 40 66 44

e-mail: alexei.boulbitch at iee.lu






  • Prev by Date: How to plot function & integral with vector variable ?
  • Next by Date: Re: Multi Thread in Mathematica (not multi core)
  • Previous by thread: Re: Sum pattern
  • Next by thread: LaTeX output - my experience