當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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