julia - 如何在 Julia 中初始化 reduce 和使用累加器
问题描述
它在没有初始值的情况下工作:
reduce(+, [2 3 4])
尝试了多种方法来提供初始值 - 没有任何效果
reduce(+, [2 3 4], 1)
reduce(+, 1, [2 3 4])
似乎 reduce 只能与 2 个参数运算符一起使用。应该使用什么函数来使用接受当前值和累加器的自定义函数来减少收集?类似于下面的代码?
reduce((accumulator, value) -> push!(accumulator, value^2), [1, 2, 3], [])
# => [1, 4, 9]
这个例子可以实现,map(x -> x^2, [1, 2, 3])
但我想知道如何用累加器来实现它。
朱莉娅版本 1.1.1
解决方案
to的init
参数reduce
是关键字参数:
julia> reduce(+, [2 3 4], init = 1)
10
julia> reduce((accumulator, value) -> push!(accumulator, value^2), [1, 2, 3], init = [])
3-element Array{Any,1}:
1
4
9
推荐阅读
- sql - 插入 oracle 数据库,但有三列我不想重复
- windows - ValueError: 太多值无法解压 pgadmin4.11
- ruby-on-rails - Rails 5.2 SQLite布尔列在represent_boolean_as_integer为真时失败
- java - 如何修复“javax.swing.ImageIcon.
(来源不明)”? - sugarcrm - 让 initial_filter 与子面板的 Select 按钮一起工作
- android - Okhttp3+android在responseHeadersStart和responseHeadersEnd之间有明显延迟
- javascript - 将模态大小调整为 div 形状
- javascript - ActionView::Template::Error(没有路由匹配 {:action=>"show", :controller=>"administration/roles" ...可能的不匹配约束:[:id]):
- c# - 怎么可能给用户一定的更新权,却不能正常使用呢?
- java - @RequestBody 在尝试使用 weblogic 11g 中的 fasterxml 将 json 转换为 POJO 时获取空值