Sha256: 74c304db68f97abedb2c0aa4eabd35f171364823455c62b0101e442f2bd1b970

Contents?: true

Size: 451 Bytes

Versions: 134

Compression:

Stored size: 451 Bytes

Contents

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)

Version data entries

134 entries across 134 versions & 1 rubygems

Version Path
trackler-2.2.1.58 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.57 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.56 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.55 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.54 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.53 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.52 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.51 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.50 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.49 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.48 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.47 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.46 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm
trackler-2.2.1.45 tracks/elm/exercises/collatz-conjecture/CollatzConjecture.example.elm