Esto generalmente se llama un pliegue en matemáticas, así como casi cualquier lenguaje de programación. Es una instancia del concepto más general de un catamorfismo . Ruby hereda su nombre para esta función de Smalltalk, donde se llama inject:into:
(usado como aCollection inject: aStartValue into: aBlock.
). Por lo tanto, en Ruby, se llama inject
. También tiene un alias de reduce
, lo cual es algo desafortunado, ya que generalmente significa algo ligeramente diferente.
Su ejemplo de C# sería algo como esto en Rubí:
factorial = [1, 2, 3, 4, 5].reduce(:*)
Aunque uno de estos sería probablemente más idiomática:
factorial = (1..5).reduce(:*)
factorial = 1.upto(5).reduce(:*)
Se llama 'reduce' - ver http: // en.wikipedia.org/wiki/Fold_%28higher-order_function%29 para el equivalente en varios idiomas. – Gabe
Probablemente deberías hacer de este comentario una respuesta para que Ramesh pueda marcarlo como la respuesta aceptada. – chuckj