Skip to main content

Transform a Sum into a List


I want to turn a sum like this


sum =a-b+c+d

Into a List like this:



sumToList[sum]={a,-b,c,d}

How can I achieve this?



Answer



List @@ sum


{a, -b, c, d}



From the docs on Apply (@@):




f@@expr replaces the head of expr by f.



So List@@sum replaces Head[sum] (that is, Plus) with List.


You can also get the same result by changing 0th Part of sum (which is its Head) to List:


sum[[0]] = List; sum


{a, -b, c, d}




Comments