# Raindrops

Easy

## Introduction

Raindrops is a slightly more complex version of the FizzBuzz challenge, a classic interview question.

## Instructions

Your task is to convert a number into its corresponding raindrop sounds.

If a given number:

• is divisible by 3, add "Pling" to the result.
• is divisible by 5, add "Plang" to the result.
• is divisible by 7, add "Plong" to the result.
• is not divisible by 3, 5, or 7, the result should be the number as a string.

### Examples

• 28 is divisible by 7, but not 3 or 5, so the result would be `"Plong"`.
• 30 is divisible by 3 and 5, but not 7, so the result would be `"PlingPlang"`.
• 34 is not divisible by 3, 5, or 7, so the result would be `"34"`.
Note

A common way to test if one number is evenly divisible by another is to compare the remainder or modulus to zero. Most languages provide operators or functions for one (or both) of these.

You need to implement the `convert` function that returns number converted to raindrop sound. You can use the provided signature if you are unsure about the types, but don't let it restrict your creativity:

``````convert :: Int -> String
``````

This exercise works with textual data. For historical reasons, Haskell's `String` type is synonymous with `[Char]`, a list of characters. For more efficient handling of textual data, the `Text` type can be used.

As an optional extension to this exercise, you can

• Add `- text` to your list of dependencies in package.yaml.
• Import `Data.Text` in the following way:
``````import qualified Data.Text as T
import           Data.Text (Text)
``````
• You can now write e.g. `convert :: Int -> Text` and refer to `Data.Text` combinators as e.g. `T.pack`.
• Look up the documentation for `Data.Text`,
• You can then replace all occurrences of `String` with `Text` in Raindrops.hs:
``````convert :: Int -> Text
``````

This part is entirely optional.

Edit via GitHub