为什么 Array#inject 被称为注入?

Why is Array#inject called inject?

我明白Array#inject的用法和用途,但为什么叫inject?我不明白在哪里注入了什么。

我更愿意把inject想成"injecting"对给定数组内的项进行运算,并返回计算的最终结果。

(1..5).inject(:+)  #=> 15

在我的示例中,它将数字 1 到 5 和 "injects" 在它们之间进行求和运算,结果是 1 + 2 + 3 + 4 + 5 = 15

此外,它的别名是 reduce,如 https://ruby-doc.org/core-2.4.1/Enumerable.html#method-i-inject 中所述。