Sha256: 3ed2210c41e24e8e1ff9acbbf6e622397f361af84729c97e6ca3c77a217efdc9

Contents?: true

Size: 446 Bytes

Versions: 69

Compression:

Stored size: 446 Bytes

Contents

defmodule Triangle do
  def kind(a, b, c), do: kind(Enum.sort([a, b, c]))

  defp kind([a, _, _]) when a <= 0, do: {:error, "all side lengths must be positive"}
  defp kind([a, b, c]) when a + b <= c, do: {:error, "side lengths violate triangle inequality"}
  defp kind([x, x, x]), do: {:ok, :equilateral}
  defp kind([x, x, _]), do: {:ok, :isosceles}
  defp kind([_, x, x]), do: {:ok, :isosceles}
  defp kind([_, _, _]), do: {:ok, :scalene}
end

Version data entries

69 entries across 69 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.179 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.178 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.177 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.176 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.175 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.174 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.173 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.172 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.171 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.170 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.169 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.167 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.166 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.165 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.164 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.163 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.162 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.161 tracks/elixir/exercises/triangle/example.exs
trackler-2.2.1.160 tracks/elixir/exercises/triangle/example.exs