番石榴是否具有Python的reduce功能?

ben*_*hsu 20 java functional-programming guava

guava(或其他java库)在Python中是否有类似reduce()函数的东西?

我正在寻找像这样的东西http://docs.python.org/library/functions.html#reduce

Col*_*inD 7

不,它可能最终,尽管像这样的功能不是番石榴的核心焦点.看到这个问题.


Ste*_*n C 6

我还没有设法找到任何支持map和支持的Java集合库reduce.(我在并行/分布式处理框架中排除map/reduce功能......因为这些框架需要一个"大"问题值得.)

可能,这种"缺乏"的原因是没有闭包的map/reduce编码太麻烦了.太多的样板代码,太多的重量级语法.因为在简单集合上使用map/reduce原语的要点是让你的代码简单而优雅......


@CurtainDog贡献了一个链接lambdaj.这就是OP所追求的那种东西(虽然没有专门调用的方法reduce).但它说明了我对样板文件的看法.请注意,许多高阶操作涉及创建扩展一个或另一个Closure类的类.

(FWIW,我认为这些Lambda.aggregate(...)方法是lambdaj的类比reduce.)

  • 信不信由你,这不是故意的.这是正确的链接:http://docs.guava-libraries.googlecode.com/git-history/v10.0.1/javadoc/com/google/common/collect/Lists.html#transform(java.util.List, %20com.google.common.base.Function) (3认同)

小智 5

Java 8流允许您执行此操作.

mylist.stream().map((x) -> x + 1).reduce((a,b) -> a + b)
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请访问:http://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html