exercism/elixir/say/README.md

74 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

2024-08-21 21:59:36 +00:00
# Say
Welcome to Say on Exercism's Elixir Track.
If you need help running the tests or submitting your code, check out `HELP.md`.
## Instructions
Given a number from 0 to 999,999,999,999, spell out that number in English.
## Step 1
Handle the basic case of 0 through 99.
If the input to the program is `22`, then the output should be `'twenty-two'`.
Your program should complain loudly if given a number outside the blessed range.
Some good test cases for this program are:
- 0
- 14
- 50
- 98
- -1
- 100
### Extension
If you're on a Mac, shell out to Mac OS X's `say` program to talk out loud.
If you're on Linux or Windows, eSpeakNG may be available with the command `espeak`.
## Step 2
Implement breaking a number up into chunks of thousands.
So `1234567890` should yield a list like 1, 234, 567, and 890, while the far simpler `1000` should yield just 1 and 0.
## Step 3
Now handle inserting the appropriate scale word between those chunks.
So `1234567890` should yield `'1 billion 234 million 567 thousand 890'`
The program must also report any values that are out of range.
It's fine to stop at "trillion".
## Step 4
Put it all together to get nothing but plain English.
`12345` should give `twelve thousand three hundred forty-five`.
The program must also report any values that are out of range.
## Source
### Created by
- @zporter
### Contributed to by
- @aifrak
- @amencarini
- @angelikatyborska
- @Cohen-Carlisle
- @devonestes
- @neenjaw
- @parkerl
- @sotojuan
### Based on
A variation on the JavaRanch CattleDrive, Assignment 4 - https://coderanch.com/wiki/718804