Pet*_*per 3 ruby reduce functional-programming
我已经绞尽脑汁待了一段时间.
使用reduce时 - 为什么返回的第一个元素没有执行块中定义的操作?或者我错过了如何减少工作的关键点?
在以下示例中:
arr = [1, 3, 5]
arr.reduce {|sum, n| sum + (n * 3) }
#=> 25
Run Code Online (Sandbox Code Playgroud)
我原以为结果是27.
以来:
0 + (1 * 3) = 3
3 + (3 * 3) = 12
12 + (5 * 3) = 27
Run Code Online (Sandbox Code Playgroud)
经过一段时间玩它后,我发现在第一个"滴答"中 - 来自数组的对象只是被添加到总和而不是乘以.所以计算更像是:
??? = 1
1 + (3 * 3) = 10
10 + (5 * 3) = 25
Run Code Online (Sandbox Code Playgroud)
有人能帮我弄明白我走的路吗?
| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |