elm/exercises/triangle/Triangle.example.elm
2016-12-17 17:29:40 -05:00

32 lines
601 B
Elm

module Triangle exposing (..)
import Set
type Triangle
= Equilateral
| Isosceles
| Scalene
version : Int
version =
2
triangleKind : comparable -> comparable -> comparable -> Result String Triangle
triangleKind x y z =
if x <= 0 || y <= 0 || z <= 0 then
Err "Invalid lengths"
else if x + y <= z || x + z <= y || y + z <= x then
Err "Violates inequality"
else
case Set.size (Set.fromList [ x, y, z ]) of
1 ->
Ok Equilateral
2 ->
Ok Isosceles
_ ->
Ok Scalene