-# numbers to words
-
-# Original implementation:
+# Numbers to Words
+
+# Original implementation using binary matching:
+# The problem with this version is it's 10 times slower than the one below it, based on some simple benchmarking.
+# I've left it in for posterity/educational reasons.
 
 # defmodule NumbersToWords do
 


  end
end

  defp to_word(n) when n < 0, do: ["negative", to_word(-n)]
  defp to_word(n) when n < 100, do: [to_word(div(n,10)*10), to_word(rem(n, 10))]
  defp to_word(n) when n < 1_000, do: [to_word(div(n,100)), "hundred", to_word(rem(n, 100))]
  # dynamically define to_word for thousands and up
  ~w[ thousand million billion trillion quadrillion quintillion sextillion septillion octillion nonillion decillion ]
  |> Enum.zip(2..13)
  |> Enum.each(
