26 lines
555 B
Elixir
26 lines
555 B
Elixir
defmodule ResistorColorDuo do
|
|
@doc """
|
|
Calculate a resistance value from two colors
|
|
"""
|
|
@spec value(colors :: [atom]) :: integer
|
|
def value(colors) do
|
|
colors
|
|
|> Enum.take(2)
|
|
|> Enum.map(&code/1)
|
|
|> Integer.undigits()
|
|
end
|
|
|
|
|
|
@spec code(atom) :: integer()
|
|
defp code(:black), do: 0
|
|
defp code(:brown), do: 1
|
|
defp code(:red), do: 2
|
|
defp code(:orange), do: 3
|
|
defp code(:yellow), do: 4
|
|
defp code(:green), do: 5
|
|
defp code(:blue), do: 6
|
|
defp code(:violet), do: 7
|
|
defp code(:grey), do: 8
|
|
defp code(:white), do: 9
|
|
end
|