当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia reduce方法用法及代码示例


用法:

reduce(op, itr; [init])

使用给定的二元运算符 op 减少给定的集合 itr 。如果提供,初始值 init 必须是为空集合返回的 op 的中性元素。未指定init 是否用于非空集合。

对于空集合,需要提供 init,但某些特殊情况除外(例如,当 op+*maxmin&| 之一时)当 Julia 可以确定 op 的中性元素时。

某些常用运算符的缩减可能有特殊实现,应改为使用:maximum(itr)minimum(itr)sum(itr)prod(itr)any(itr)all(itr)

减少的关联性取决于实现。这意味着您不能使用像 - 这样的非关联操作,因为不确定 reduce(-,[1,2,3]) 是否应该被评估为 (1-2)-31-(2-3) 。使用 foldl foldr 来保证左或右关联性。

一些操作会累积错误。如果减少可以分组执行,并行性会更容易。 Julia 的未来版本可能会改变算法。请注意,如果您使用有序集合,则元素不会重新排序。

例子

julia> reduce(*, [2; 3; 4])
24

julia> reduce(*, [2; 3; 4]; init=-1)
-24

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.reduce — Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。