Parcours
/
Haskell
Haskell
/
Exercices
/
Gouttes de pluie
Gouttes de pluie

Gouttes de pluie

Facile

Introduction

Gouttes de pluie est une version légèrement plus complexe du défi FizzBuzz, une question classique d'entretien.

Instructions

Ta tâche est de convertir un nombre en ses sons de gouttes de pluie correspondants.

Si un nombre donné :

  • est divisible par 3, ajoute « Pling » au résultat.
  • est divisible par 5, ajoute « Plang » au résultat.
  • est divisible par 7, ajoute « Plong » au résultat.
  • n'est pas divisible par 3, 5 ou 7, le résultat doit être le nombre sous forme de string.

Exemples

  • 28 est divisible par 7, mais pas par 3 ni par 5, donc le résultat serait "Plong".
  • 30 est divisible par 3 et 5, mais pas par 7, donc le résultat serait "PlingPlang".
  • 34 n'est pas divisible par 3, 5 ou 7, donc le résultat serait "34".
Note

Une façon courante de vérifier si un nombre est divisible par un autre est de comparer le reste ou le modulo à zéro. La plupart des langages proposent des opérateurs ou des fonctions pour l'un (ou les deux).

Indices

Tu dois implémenter la fonction convert, qui renvoie le nombre converti en son de goutte de pluie. Tu peux utiliser la signature fournie si tu n'es pas sûr des types, mais ne la laisse pas brider ta créativité :

convert :: Int -> String

Cet exercice manipule des données textuelles. Pour des raisons historiques, le type String de Haskell est synonyme de [Char], une liste de caractères. Pour manipuler plus efficacement des données textuelles, on peut utiliser le type Text.

En option, pour prolonger cet exercice, tu peux

import qualified Data.Text as T
import           Data.Text (Text)
  • Tu peux maintenant écrire par exemple convert :: Int -> Text et désigner les combinateurs de Data.Text par exemple par T.pack.
  • Consulter la documentation de Data.Text,
  • Tu peux ensuite remplacer toutes les occurrences de String par Text dans Raindrops.hs :
convert :: Int -> Text

Cette partie est entièrement facultative.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Haskell Exercism

Prêt à commencer Gouttes de pluie ?

Inscris-toi sur Exercism pour apprendre et maîtriser Haskell avec 107 exercices, et un vrai mentorat humain, le tout gratuitement.

Analyse approfondie de Gouttes de pluie !

Explore des solutions utilisant des pipelines fonctionnels, la multiplication matricielle, une solution basée sur une table précalculée à l'aide d'une macro, une approche orientée objet, un usage impressionnant de Python et de TCL, et une version entreprise.