With the conscious decision to eschew elegance for reliability, I present
symSum[li_List] := Module[{k2 = Ceiling[Length[li]/2]}, Total[MapAt[Reverse, If[Apply[Equal, Length /@ #], #, MapAt[Function[l, PadLeft[l, k2]], #, {2}]] &[ Partition[li, k2, k2, {1, 1}, {}]], {2}]]] or more compactly,
symSum[li_List] := Module[{k2 = Ceiling[Length[li]/2]}, Total[MapAt[Reverse, PadLeft[Partition[li, k2, k2, {1, 1}, {}], {2, k2}], {2}]]] Testing:
list = {a, b, c, d, e, f}; symSum[list] {a + f, b + e, c + d} symSum[Most@list] {a + e, b + d, c} Yet another variation:
symSum[li_List] := Module[{k = Length[li], k2}, k2 = Ceiling[k/2]; Total[MapAt[ Composition[Reverse, If[EvenQ[k], Identity, RotateRight]], Internal`Deflatten[PadRight[li, 2 k2], {2, k2}], {2}]]] and we can keep on putting out variations until we're all blue in the face:
symSum[li_List] := Module[{k = Length[li], k2}, k2 = Ceiling[k/2]; PadRight[Total[ Take[li, {#, # Quotient[k, 2], #}] & /@ {1, -1}], k2, test[[k2]]]]