Is inject the same thing as reduce in ruby?

2019-02-01 15:29发布

问题:

I saw that they were documented together here. Are they the same thing? Why does Ruby have so many aliases (such as map/collect for arrays)? Thanks a lot.

回答1:

Yes, and it's also called fold in many other programming languages and in Mathematics. Ruby aliases a lot in order to be intuitive to programmers with different backgrounds. If you want to use #length on an Array, you can. If you want to use #size, that's fine too!



回答2:

More recent versions of the documentation of Enumerable#reduce specify it explicitly:

The inject and reduce methods are aliases. There is no performance benefit to either.