Respostas:
Sim, e também é chamado fold
em muitas outras linguagens de programação e em matemática. Ruby usa muitos apelidos para ser intuitivo para programadores com experiências diferentes. Se quiser usar #length
em um Array
, você pode. Se você quiser usar #size
, tudo bem!
inject
para que os usuários não tenham que ler os dois descrição e tente descobrir se eles são iguais ... isso não vai com o princípio DRY?
Versões mais recentes da documentação do Enumerable#reduce
especificam explicitamente:
Os métodos
inject
ereduce
são aliases. Não há benefício de desempenho para nenhum dos dois.
&:+
), reduza, se for um bloco, injete