最佳答案
在哈斯克尔,实现以下目标的最惯用方法是什么:
foldl (+) 0 [1,2,3,4,5]
--> 15
或者在 Ruby 中的等价物:
[1,2,3,4,5].inject(0) {|m,x| m + x}
#> 15
很明显,Python 提供了 reduce
函数,这是一个折叠的实现,和上面一模一样,但是,我被告知,“ pythonic”编程方式是避免使用 lambda
术语和高阶函数,尽可能使用列表理解。因此,在 Python 中是否有折叠列表的首选方法,或者不是 reduce
函数的类似列表的结构,或者 reduce
是实现这一点的惯用方法?