• gerryflap@feddit.nl
    link
    fedilink
    English
    arrow-up
    23
    arrow-down
    1
    ·
    21 days ago

    Using Haskell you can write it way more concise:

    iseven :: Int -> Bool
    iseven 0 = True
    iseven 1 = False
    iseven 2 = True
    iseven 3 = False
    iseven 4 = True
    iseven 5 = False
    iseven 6 = True
    iseven 7 = False
    iseven 8 = True
    ...
    

    However, we can be way smarter by only defining the 2 base cases and then a recursive definition for all other numbers:

    iseven :: Int -> Bool
    iseven 0 = True
    iseven 1 = False
    iseven n = iseven (n-2)
    

    It’s having a hard time with negative numbers, but honestly that’s quite a mood