elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
Morten Nygaard Åsnes f40f8a1ac0 Fixed elm-format
2017-10-08 11:30:04 +02:00

19 lines
451 B
Elm

module CollatzConjecture exposing (collatz)
collatz : Int -> Result String Int
collatz start =
if start <= 0 then
Err "Only positive numbers are allowed"
else
Ok (collatzHelper 0 start)
collatzHelper : Int -> Int -> Int
collatzHelper steps start =
if start == 1 then
steps
else if start % 2 == 0 then
collatzHelper (1 + steps) (start // 2)
else
collatzHelper (1 + steps) (3 * start + 1)