Naming Numbers
Mix.install([
{:jason, "~> 1.4"},
{:kino, "~> 0.9", override: true},
{:youtube, github: "brooklinjazz/youtube"},
{:hidden_cell, github: "brooklinjazz/hidden_cell"}
])
Navigation
Home Report An Issue Control FlowRock Paper ScissorsNaming Numbers
In the Elixir cell below, create a function naming_numbers
which accepts a
single digit integer and returns its string representation. So 1
would become "one"
.
flowchart
0 --> zero
1 --> one
2 --> two
3 --> three
4 --> four
5 --> five
6 --> six
7 --> seven
8 --> eight
9 --> nine
naming_numbers.(1)
"one"
Solution Example
naming_numbers = fn integer ->
case integer do
0 -> "zero"
1 -> "one"
2 -> "two"
3 -> "three"
4 -> "four"
5 -> "five"
6 -> "six"
7 -> "seven"
8 -> "eight"
9 -> "nine"
end
end
Enter your solution below.
naming_numbers = fn number ->
case number do
0 -> "zero"
1 -> "one"
2 -> "two"
3 -> "three"
4 -> "four"
5 -> "five"
6 -> "six"
7 -> "seven"
8 -> "eight"
9 -> "nine"
10 -> "ten"
end
end
naming_numbers.(2)
Numbering Names
In the Elixir cell below, create a function numbering_names
which accepts a
number’s name and returns its string representation. So "one"
would become 1
.
In addition to accepting lowercase name, also accept uppercase names so "One"
would become 1
.
flowchart
zero --> 0
one --> 1
two --> 2
three --> 3
four --> 4
five --> 5
six --> 6
seven --> 7
eight --> 8
nine --> 9
flowchart
Zero --> 0
One --> 1
Two --> 2
Three --> 3
Four --> 4
Five --> 5
Six --> 6
Seven --> 7
Eight --> 8
Nine --> 9
Solution Example
We can brute force the solutione using case.
numbering_names = fn int_str ->
case int_str do
"zero" -> 0
"one" -> 1
"two" -> 2
"three" -> 3
"four" -> 4
"five" -> 5
"six" -> 6
"seven" -> 7
"eight" -> 8
"nine" -> 9
"Zero" -> 0
"One" -> 1
"Two" -> 2
"Three" -> 3
"Four" -> 4
"Five" -> 5
"Six" -> 6
"Seven" -> 7
"Eight" -> 8
"Nine" -> 9
end
end
Or use String.downcase/2 to make the solutione more concise.
This has the added benefit of handling mixed case such as "ZeRO"
.
numbering_names = fn int_str ->
case String.downcase(int_str) do
"zero" -> 0
"one" -> 1
"two" -> 2
"three" -> 3
"four" -> 4
"five" -> 5
"six" -> 6
"seven" -> 7
"eight" -> 8
"nine" -> 9
end
end
naming_numbers = fn string ->
lower_case = String.downcase(string)
case lower_case do
"zero" -> 0
"one" -> 1
"two" -> 2
"three" -> 3
"four" -> 4
"five" -> 5
"six" -> 6
"seven" -> 7
"eight" -> 8
"nine" -> 9
"ten" -> 10
end
end
naming_numbers.("Two")
Commit Your Progress
DockYard Academy now recommends you use the latest Release rather than forking or cloning our repository.
Run git status
to ensure there are no undesirable changes.
Then run the following in your command line from the curriculum
folder to commit your progress.
$ git add .
$ git commit -m "finish Naming Numbers exercise"
$ git push
We’re proud to offer our open-source curriculum free of charge for anyone to learn from at their own pace.
We also offer a paid course where you can learn from an instructor alongside a cohort of your peers. We will accept applications for the June-August 2023 cohort soon.