Sha256: 1505390796f730bcfd170de6c6c5f768313e0e5405305d0c6cf5adcdeef128e9

Contents?: true

Size: 601 Bytes

Versions: 292

Compression:

Stored size: 601 Bytes

Contents

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

Version data entries

292 entries across 292 versions & 1 rubygems

Version Path
trackler-2.0.5.13 tracks/elm/exercises/triangle/Triangle.example.elm
trackler-2.0.5.12 tracks/elm/exercises/triangle/Triangle.example.elm
trackler-2.0.5.11 tracks/elm/exercises/triangle/Triangle.example.elm
trackler-2.0.5.10 tracks/elm/exercises/triangle/Triangle.example.elm
trackler-2.0.5.9 tracks/elm/exercises/triangle/Triangle.example.elm
trackler-2.0.5.8 tracks/elm/exercises/triangle/Triangle.example.elm
trackler-2.0.5.7 tracks/elm/exercises/triangle/Triangle.example.elm
trackler-2.0.5.6 tracks/elm/exercises/triangle/Triangle.example.elm
trackler-2.0.5.5 tracks/elm/exercises/triangle/Triangle.example.elm
trackler-2.0.5.4 tracks/elm/exercises/triangle/Triangle.example.elm
trackler-2.0.5.3 tracks/elm/exercises/triangle/Triangle.example.elm
trackler-2.0.5.2 tracks/elm/exercises/triangle/Triangle.example.elm