Implemente a operação accumulate, que, dada uma coleção e uma operação a ser aplicada em cada elemento da coleção, retorna uma nova coleção contendo o resultado da aplicação dessa operação a cada elemento da coleção de entrada.
Dada a coleção de números:
E a operação:
x => x * x)Seu código deve ser capaz de produzir a coleção de quadrados:
Dê uma olhada no conjunto de testes para ver a assinatura de função esperada.
Não use essa funcionalidade de collect/map/fmap/seja lá o que for que a sua biblioteca padrão oferece! Resolva este exercício por conta própria usando outras ferramentas básicas.
É comum chamar #to_enum ao definir métodos para um Enumerable genérico, caso nenhum bloco seja passado.
Aqui está um teste adicional que você pode adicionar:
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
Crie sua conta no Exercism para aprender e dominar Ruby com 21 conceitos121 exercícios e mentoria humana de verdade, tudo de graça.