Suma częściowa w standardowym ML?

Jestem nowym użytkownikiem programowania funkcjonalnego i mam zadanie obliczania sumy częściowej listy. Na przykład. - psum [1,1,1,1,1]; val to = [1,2,3,4,5]: lista int

Oto mój kod do tej pory. Jednak w funkcji psum2 [L] nie wiem, jak przejść przez każdą wartość i dodać je, więc po prostu wydrukuję listę.

fun psum2(L) : int list = 
   if L=nil then []
   else L;

fun pSum(L) : int list = 
   psum2(L);

exception Empty_List;

psum([2,3,4]);

questionAnswers(1)

yourAnswerToTheQuestion