Acumular

Acumular

Fácil

Instruções

Implementa a operação accumulate, que, dada uma coleção e uma operação a aplicar a cada elemento dessa coleção, devolve uma nova coleção com o resultado da aplicação dessa operação a cada elemento da coleção de entrada.

Dada a coleção de números:

  • 1, 2, 3, 4, 5

E a operação:

  • elevar um número ao quadrado (x => x * x)

O teu código deve ser capaz de produzir a coleção dos quadrados:

  • 1, 4, 9, 16, 25

Dá uma vista de olhos à suite de testes para veres a assinatura esperada da função.

Restrições

Não mexas na funcionalidade collect/map/fmap, ou lá como lhe chamam, que a tua biblioteca padrão oferece! Resolve este exercício sozinho, recorrendo a outras ferramentas básicas.

Para ser mais específico, não podes usar nenhum dos métodos LINQ incorporados.

Teste de avaliação preguiçosa

Como accumulate devolve um IEnumerable, a sua execução é adiada até que ToList() seja chamado sobre ele, o que é testado com o método Accumulate_is_lazy.

Dicas

Este exercício exige que escrevas um método de extensão. Para mais informações, consulta esta página.

Editar via GitHub A ligação abre numa nova janela ou separador
C# Exercism

Estás pronto para começar Acumular?

Inscreve-te no Exercism para aprenderes e dominares C# com 62 conceitos178 exercícios, e mentoria humana real, tudo grátis.