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
|