用法:
reduce(op, itr; [init])
使用给定的二元运算符 op
减少给定的集合 itr
。如果提供,初始值 init
必须是为空集合返回的 op
的中性元素。未指定init
是否用于非空集合。
对于空集合,需要提供 init
,但某些特殊情况除外(例如,当 op
是 +
、*
、max
、min
、&
、|
之一时)当 Julia 可以确定 op
的中性元素时。
某些常用运算符的缩减可能有特殊实现,应改为使用:maximum(itr)
、minimum(itr)
、sum(itr)
、prod(itr)
、any(itr)
、all(itr)
。
减少的关联性取决于实现。这意味着您不能使用像 -
这样的非关联操作,因为不确定 reduce(-,[1,2,3])
是否应该被评估为 (1-2)-3
或 1-(2-3)
。使用
或 foldl
来保证左或右关联性。foldr
一些操作会累积错误。如果减少可以分组执行,并行性会更容易。 Julia 的未来版本可能会改变算法。请注意,如果您使用有序集合,则元素不会重新排序。
例子
julia> reduce(*, [2; 3; 4])
24
julia> reduce(*, [2; 3; 4]; init=-1)
-24
相关用法
- Julia redirect_stdio用法及代码示例
- Julia rem用法及代码示例
- Julia readchomp用法及代码示例
- Julia readuntil用法及代码示例
- Julia replace!用法及代码示例
- Julia real方法用法及代码示例
- Julia readlines用法及代码示例
- Julia replace()用法及代码示例
- Julia retry用法及代码示例
- Julia read用法及代码示例
- Julia reverseind用法及代码示例
- Julia reim用法及代码示例
- Julia repeat方法用法及代码示例
- Julia readline用法及代码示例
- Julia repeat用法及代码示例
- Julia repr方法用法及代码示例
- Julia reverse!用法及代码示例
- Julia reshape用法及代码示例
- Julia replace方法用法及代码示例
- Julia repeat()用法及代码示例
- Julia reverse方法用法及代码示例
- Julia resize!用法及代码示例
- Julia readeach用法及代码示例
- Julia reverse()用法及代码示例
- Julia rest用法及代码示例
注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.reduce — Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。