Acumular

Acumular

Fácil

Instrucciones

Implementa la operación accumulate, que, dada una colección y una operación que se debe 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 poder producir la colección de cuadrados:

  • 1, 4, 9, 16, 25

Revisa la suite de pruebas para ver la firma de función esperada.

Restricciones

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

Avanzado

Es común llamar a #to_enum al definir métodos para un Enumerable genérico, en caso de que no se pase un bloque.

Aquí tienes una prueba adicional que podrías agregar:

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 una pestaña nuevas
Ruby Exercism

¿Todo listo para empezar Acumular?

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