exercism/elixir/kitchen-calculator/lib/kitchen_calculator.ex
2022-08-24 14:28:45 +02:00

32 lines
759 B
Elixir

defmodule KitchenCalculator do
def get_volume(volume_pair) do
elem(volume_pair, 1)
end
def to_milliliter(volume_pair) do
volume = get_volume(volume_pair)
case elem(volume_pair, 0) do
:milliliter -> volume
:fluid_ounce -> 30 * volume
:cup -> 240 * volume
:teaspoon -> 5 * volume
:tablespoon -> 15 * volume
_ -> -1
end
end
def from_milliliter({:milliliter, volume}, unit) do
case unit do
:cup -> volume / 240
:fluid_ounce -> volume / 30
:teaspoon -> volume / 5
:tablespoon -> volume / 15
_ -> volume
end
end
def convert({unit1, volume}, unit2) do
from_milliliter({:milliliter, to_milliliter({unit1, volume})}, unit2)
end
end