Re: How to separate a sum into terms
- To: mathgroup at smc.vnet.net
- Subject: [mg92055] Re: How to separate a sum into terms
- From: "David Park" <djmpark at comcast.net>
- Date: Thu, 18 Sep 2008 06:17:37 -0400 (EDT)
- References: <gaqf4g$doa$1@smc.vnet.net>
Here is your expression: expr = (a + b - c + f[1] - g[a]/g[b]); The Head of the expression is: Head[expr] Plus But you would like to have a List instead of a sum (Plus) of the items. Do this by applying List to the expression. This replaces the Head, Plus, by a new Head, List. Apply[List, expr] {a, b, -c, f[1], -(g[a]/g[b])} Or use the Mathematica shortcut, @@, for Apply: List @@ expr {a, b, -c, f[1], -(g[a]/g[b])} Or Apply directly to the expression: List @@ (a + b - c + f[1] - g[a]/g[b]) {a, b, -c, f[1], -(g[a]/g[b])} In this particular case you could also do a simple substitution: a + b - c + f[1] - g[a]/g[b] /. Plus -> List {a, b, -c, f[1], -(g[a]/g[b])} But that would not work if, for example, g had a sum for an argument. So Apply is the best method. -- David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ "Slava Rychkov" <slava.rychkov at gmail.com> wrote in message news:gaqf4g$doa$1 at smc.vnet.net... > Hi! > > 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? > > Thanks, > -- > Vyacheslav Rychkov https://mail.sns.it/~rychkov > Scuola Normale Superiore Tel: +39-050-509068 (office) > Classe di Scienze +39-050-3820086 (home) > Piazza dei Cavalieri, 7 +39-3403925168 (mobile) > 56100 Pisa Fax: +39-050-509045 > Italy E-mail: Rychkov at sns.it >