Acumular

Acumular

Fácil

Instruções

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:

  • 1, 2, 3, 4, 5

E a operação:

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

Seu código deve ser capaz de produzir a coleção de quadrados:

  • 1, 4, 9, 16, 25

Dê uma olhada no conjunto de testes para ver a assinatura de função esperada.

Restrições

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.

Dicas

Para este exercício, o seguinte recurso do F# vem a calhar:

  • Recursão em cauda Evite estouros de pilha com entradas grandes usando recursão em cauda. Embora não existam casos de teste verificando isso explicitamente, usar recursão em cauda resulta em uma solução com melhor desempenho. Outro bom recurso sobre recursão em cauda é este post de blog.
  • Inferência de tipos O compilador do F# consegue inferir tipos automaticamente, o que significa que muitas vezes você não precisa adicionar nenhum tipo. Para mais informações sobre como isso funciona e suas vantagens, veja esta página.
Editar via GitHub O link abre em uma nova janela ou aba
F# Exercism

Tudo pronto para começar Acumular?

Crie sua conta no Exercism para aprender e dominar F# com 18 conceitos148 exercícios e mentoria humana de verdade, tudo de graça.