Tracks
/
Haskell
Haskell
/
Ejercicios
/
Gotas de lluvia
Gotas de lluvia

Gotas de lluvia

Fácil

Introducción

Gotas de lluvia es una versión un poco más compleja del desafío FizzBuzz, una pregunta clásica de entrevista.

Instrucciones

Tu tarea es convertir un número en sus correspondientes sonidos de gotas de lluvia.

Si un número dado:

  • es divisible por 3, agrega «Pling» al resultado.
  • es divisible por 5, agrega «Plang» al resultado.
  • es divisible por 7, agrega «Plong» al resultado.
  • no es divisible por 3, 5 ni 7, el resultado debe ser el número como un string.

Ejemplos

  • 28 es divisible por 7, pero no por 3 ni por 5, así que el resultado sería "Plong".
  • 30 es divisible por 3 y 5, pero no por 7, así que el resultado sería "PlingPlang".
  • 34 no es divisible por 3, 5 ni 7, así que el resultado sería "34".
Note

Una forma común de probar si un número es divisible de manera exacta por otro es comparar el residuo o el módulo con cero. La mayoría de los lenguajes proporcionan operadores o funciones para uno (o ambos) de estos.

Pistas

Necesitas implementar la función convert, que devuelve el número convertido en sonidos de gotas de lluvia. Puedes usar la firma que te proporcionamos si tienes dudas sobre los tipos, pero no dejes que limite tu creatividad:

convert :: Int -> String

Este ejercicio trabaja con datos de texto. Por razones históricas, el tipo String de Haskell es sinónimo de [Char], una lista de caracteres. Para manejar datos de texto de forma más eficiente, puedes usar el tipo Text.

Como extensión opcional de este ejercicio, puedes

import qualified Data.Text as T
import           Data.Text (Text)
  • Ya puedes escribir, por ejemplo, convert :: Int -> Text y referirte a los combinadores de Data.Text como, por ejemplo, T.pack.
  • Consultar la documentación de Data.Text,
  • Luego puedes reemplazar todas las apariciones de String por Text en Raindrops.hs:
convert :: Int -> Text

Esta parte es totalmente opcional.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Haskell Exercism

¿Todo listo para empezar Gotas de lluvia?

Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.

¡Profundiza en Gotas de lluvia!

Explora soluciones con canalizaciones funcionales, multiplicación de matrices, soluciones basadas en tablas precalculadas con una macro, un enfoque orientado a objetos, un uso impresionante tanto de Python como de TCL, y una edición empresarial.