#Erlang, 69 bytes
Erlang, 69 bytes
f(A)->put(1,1),L=lists,[L:sum(L:sublist(A,put(1,get(1)+1),X))||X<-A].
Erlang's higher-order functions for lists do not receive the index of the current element. This uses the process dictionary to set the index of the current element.