用Python方式对数组求和的方法是使用
sum。为了其他目的,有时可以使用
reduce(来自
functools模块)和
operator模块的某种组合,例如:
def product(xs): return reduce(operator.mul, xs, 1)
请注意,
reduce实际上这是一个
foldl用Haskell表示的。没有执行折叠的特殊语法,没有内置函数
foldr,实际上
reduce与非关联运算符一起使用被认为是不好的样式。
使用高阶函数是相当Python的;它很好地利用了Python的原理,即一切都是对象,包括函数和类。没错,lambda被某些Pythonista所反对,但这主要是因为它们变得复杂时往往不太可读。



