learning F#, it seems pretty cool, favourite functional language so far.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lachlan Jacob 56afbe9dc5 Exercism problems 5 년 전
..
README.md Exercism problems 5 년 전
Raindrops.fs Exercism problems 5 년 전
Raindrops.fsproj Exercism problems 5 년 전
RaindropsTests.fs Exercism problems 5 년 전

README.md

Raindrops

Your task is to convert a number into a string that contains raindrop sounds corresponding to certain potential factors. A factor is a number that evenly divides into another number, leaving no remainder. The simplest way to test if a one number is a factor of another is to use the modulo operation.

The rules of raindrops are that if a given number:

  • has 3 as a factor, add ‘Pling’ to the result.
  • has 5 as a factor, add ‘Plang’ to the result.
  • has 7 as a factor, add ‘Plong’ to the result.
  • does not have any of 3, 5, or 7 as a factor, the result should be the digits of the number.

Examples

  • 28 has 7 as a factor, but not 3 or 5, so the result would be “Plong”.
  • 30 has both 3 and 5 as factors, but not 7, so the result would be “PlingPlang”.
  • 34 is not factored by 3, 5, or 7, so the result would be “34”.

Hints

  • Think of this in a generic way. If you’re familiar with the (fizz buzz)[https://en.wikipedia.org/wiki/Fizz_buzz] problem this is similar except there are three conditions instead of two. How would you implement this knowing that one day we might want to extend to four, five, or even ten types of raindrops?

Running the tests

To run the tests, run the command dotnet test from within the exercise directory.

Autoformatting the code

F# source code can be formatted with the Fantomas tool.

After installing it with dotnet tool restore, run dotnet fantomas . to format code within the current directory.

Further information

For more detailed information about the F# track, including how to get help if you’re having trouble, please visit the exercism.io F# language page.

Source

A variation on FizzBuzz, a famous technical interview question that is intended to weed out potential candidates. That question is itself derived from Fizz Buzz, a popular children’s game for teaching division. https://en.wikipedia.org/wiki/Fizz_buzz