Skip to content

Latest commit

 

History

History
224 lines (186 loc) · 5.63 KB

naming_numbers.livemd

File metadata and controls

224 lines (186 loc) · 5.63 KB

Naming Numbers

Mix.install([
  {:jason, "~> 1.4"},
  {:kino, "~> 0.9", override: true},
  {:youtube, github: "brooklinjazz/youtube"},
  {:hidden_cell, github: "brooklinjazz/hidden_cell"}
])

Navigation

Naming 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
Loading
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.

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
Loading
flowchart
  Zero --> 0
  One --> 1
  Two --> 2
  Three --> 3
  Four --> 4
  Five --> 5
  Six --> 6
  Seven --> 7
  Eight --> 8
  Nine --> 9
Loading
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

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.

Navigation