16 lines
276 B
Elixir
16 lines
276 B
Elixir
defmodule Fraction do
|
|
defstruct a: nil, b: nil
|
|
|
|
def new(a, b), do: %Fraction{a: a, b: b}
|
|
|
|
def value(%Fraction{a: a, b: b}) do
|
|
a / b
|
|
end
|
|
|
|
def add(%Fraction{a: a1, b: b1}, %Fraction{a: a2, b: b2}) do
|
|
new(
|
|
a1 * b2 + a2 * b1,
|
|
b1 * b2
|
|
)
|
|
end
|
|
end
|