用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。