Acumular

Acumular

Fácil

Instrucciones

Implementa la operación accumulate, que, dada una colección y una operación que hay que aplicar a cada elemento de la colección, devuelve una nueva colección con el resultado de aplicar esa operación a cada elemento de la colección de entrada.

Dada la colección de números:

  • 1, 2, 3, 4, 5

Y la operación:

  • elevar un número al cuadrado (x => x * x)

Tu código debería ser capaz de producir la colección de cuadrados:

  • 1, 4, 9, 16, 25

Consulta el conjunto de pruebas para ver la firma que se espera de la función.

Restricciones

¡No toques esa funcionalidad de collect/map/fmap/como se llame que te ofrece tu biblioteca estándar! Resuelve este ejercicio por tu cuenta con otras herramientas básicas.

Avanzado

Es habitual llamar a #to_enum al definir métodos para un Enumerable genérico, por si no se pasa ningún bloque.

Aquí tienes un test adicional que podrías añadir:

def test_accumulate_when_block_is_deferred
  skip
  accumulate_enumerator = [1, 2, 3].accumulate
  accumulated_result = accumulate_enumerator.map do |number|
    number * number
  end
  assert_equal [1, 4, 9], accumulated_result
end
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Ruby Exercism

¿Listo para empezar Acumular?

Regístrate en Exercism para aprender y dominar Ruby con 21 conceptos121 ejercicios y mentoría humana real, todo gratis.