Czym jest „pythonic” odpowiednik funkcji „składania” z programowania funkcjonalnego?

Jaki jest najbardziej idiomatyczny sposób osiągnięcia czegoś takiego, jak w Haskell:

<code>foldl (+) 0 [1,2,3,4,5]
--> 15
</code>

Lub jego odpowiednik w Ruby:

<code>[1,2,3,4,5].inject(0) {|m,x| m + x}
#> 15
</code>

Oczywiście Python zapewniareduce funkcji, która jest implementacją funkcji fold, dokładnie tak jak powyżej, powiedziano mi jednak, że sposobem programowania „python” jest unikanielambda terminy i funkcje wyższego rzędu, w miarę możliwości preferując wyrażenia listowe. Dlatego istnieje preferowany sposób składania listy lub struktury podobnej do listy w Pythonie, która nie jestreduce funkcja lub jestreduce idiomatyczny sposób osiągnięcia tego?

questionAnswers(7)

yourAnswerToTheQuestion