elm/exercises/triangle/Triangle.example.elm

33 lines
601 B
Elm
Raw Normal View History

module Triangle exposing (..)
2016-03-14 00:09:05 +00:00
import Set
type Triangle
= Equilateral
| Isosceles
| Scalene
version : Int
version =
2
2016-12-17 22:15:34 +00:00
triangleKind : comparable -> comparable -> comparable -> Result String Triangle
2016-03-14 00:09:05 +00:00
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
2016-03-14 00:09:05 +00:00
2 ->
Ok Isosceles
2016-03-14 00:09:05 +00:00
_ ->
Ok Scalene