Mix.install([
{:youtube, github: "brooklinjazz/youtube"},
{:hidden_cell, github: "brooklinjazz/hidden_cell"},
{:tested_cell, github: "brooklinjazz/tested_cell"},
{:utils, path: "#{__DIR__}/../utils"}
])
You're going to build an app to convert metric measurements such as millimeters, centimeters, meters, and kilometers according to the following table.
[
[unit: :millimeter, value: 1, meter: 0.001],
[unit: :centimeter, value: 1, meter: 0.01],
[unit: :meter, value: 1, meter: 1],
[unit: :kilometer, value: 1, meter: 1000]
]
|> Kino.DataTable.new()
1000 * 0.01 / 1000
Users provide values using {from_unit, value}
tuples, and the desired unit to convert to.
Metric.convert({:centimeter, 100}, :meter)
1.0
The unit to convert from, and the unit to convert to can be either :millimeter
, :centimeter
, :meter
, or :kilometer
. The output should always be a float.
defmodule Metric do
@moduledoc """
Documentation for `Metric`
"""
@doc """
Convert one measurement to another.
We've used math values in the result
## Examples
Convert unit to meters.
iex> Metric.convert({:millimeter, 1}, :meter)
0.001
iex> Metric.convert({:centimeter, 1}, :meter)
0.01
iex> Metric.convert({:meter, 1}, :meter)
1.0
iex> Metric.convert({:kilometer, 1}, :meter)
1000
Convert meters to unit.
iex> Metric.convert({:meter, 1}, :millimeter)
1000.0
iex> Metric.convert({:meter, 1}, :centimeter)
100.0
iex> Metric.convert({:meter, 1}, :meter)
1.0
iex> Metric.convert({:meter, 1}, :kilometer)
0.001
Convert unit to unit.
iex> Metric.convert({:centimeter, 1000}, :kilometer)
0.01
iex> Metric.convert({:millimeter, 10}, :centimeter)
1
iex> Metric.convert({:kilometer, 10}, :centimeter)
1000000
"""
def convert(from, to) do
end
end
Run the following in your command line from the beta_curriculum folder to track and save your progress in a Git commit.
$ git add .
$ git commit -m "finish metric conversion exercise"
Previous | Next |
---|---|
RPS Pattern Matching | Guards |