Trilhas
/
Haskell
Haskell
/
Exercícios
/
Gotas de chuva
Gotas de chuva

Gotas de chuva

Fácil

Introdução

Gotas de chuva é uma versão um pouco mais complexa do desafio FizzBuzz, uma questão clássica de entrevistas.

Instruções

Sua tarefa é converter um número nos sons correspondentes de gotas de chuva.

Se um determinado número:

  • for divisível por 3, adicione "Pling" ao resultado.
  • for divisível por 5, adicione "Plang" ao resultado.
  • for divisível por 7, adicione "Plong" ao resultado.
  • não for divisível por 3, 5 nem 7, o resultado deve ser o número como uma string.

Exemplos

  • 28 é divisível por 7, mas não por 3 nem por 5, então o resultado seria "Plong".
  • 30 é divisível por 3 e por 5, mas não por 7, então o resultado seria "PlingPlang".
  • 34 não é divisível por 3, 5 nem 7, então o resultado seria "34".
Note

Uma forma comum de testar se um número é divisível por outro é comparar o resto ou o módulo com zero. A maioria das linguagens oferece operadores ou funções para um deles (ou para os dois).

Dicas

Você precisa implementar a função convert, que retorna o número convertido no som de gota de chuva. Você pode usar a assinatura fornecida se estiver na dúvida sobre os tipos, mas não deixe que ela restrinja a sua criatividade:

convert :: Int -> String

Este exercício trabalha com dados textuais. Por razões históricas, o tipo String do Haskell é sinônimo de [Char], uma lista de caracteres. Para lidar com dados textuais de forma mais eficiente, é possível usar o tipo Text.

Como uma extensão opcional deste exercício, você pode

import qualified Data.Text as T
import           Data.Text (Text)
  • Agora você pode escrever, por exemplo, convert :: Int -> Text e se referir aos combinadores de Data.Text como, por exemplo, T.pack.
  • Consultar a documentação de Data.Text,
  • Depois, você pode substituir todas as ocorrências de String por Text no Raindrops.hs:
convert :: Int -> Text

Esta parte é totalmente opcional.

Editar via GitHub O link abre em uma nova janela ou aba
Haskell Exercism

Tudo pronto para começar Gotas de chuva?

Crie sua conta no Exercism para aprender e dominar Haskell com 107 exercícios e mentoria humana de verdade, tudo de graça.

Mergulho profundo em Gotas de chuva!

Explore soluções usando pipelines funcionais, multiplicação de matrizes, uma solução pré-calculada baseada em tabela usando uma macro, uma abordagem orientada a objetos, um uso impressionante de Python e TCL e uma edição empresarial.