Re: How to separate a sum into terms

*To*: mathgroup at smc.vnet.net*Subject*: [mg92056] Re: How to separate a sum into terms*From*: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>*Date*: Thu, 18 Sep 2008 06:17:49 -0400 (EDT)*Organization*: The Open University, Milton Keynes, UK*References*: <gaqf4g$doa$1@smc.vnet.net>

Slava Rychkov wrote: > I want to separate a Mathematica expression written as a sum into > separate terms > E.g. for > > a+b-c+f[1]-g[a]/g[b] > > I want to get a list > > {a,b,-c,f[1],-g[a]/g[b]} > > Is there a simple way to do this? Yes, by changing the head of the original expression from Plus to List thanks to the function *Apply[]*. (Keep in mind that, in Mathematica, everything is an expression of the form head[e1, e2, ...] where the head can be itself composed and possibly followed by zero, one, or more elements.) For instance, In[12]:= a + b - c + f[1] - g[a]/g[b] Out[12]= g[a] a + b - c + f[1] - ---- g[b] In[13]:= % // FullForm Out[13]//FullForm= Plus[a, b, Times[-1, c], f[1], Times[-1, g[a], Power[g[b], -1]]] In[14]:= Apply[List, %] Out[14]= g[a] {a, b, -c, f[1], -(----)} g[b] In[15]:= % // FullForm Out[15]//FullForm= List[a, b, Times[-1, c], f[1], Times[-1, g[a], Power[g[b], -1]]] Regards, -- Jean-Marc