this post was submitted on 31 Oct 2024
385 points (98.5% liked)

196

16530 readers
2217 users here now

Be sure to follow the rule before you head out.

Rule: You must post before you leave.

^other^ ^rules^

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 21 points 2 weeks ago (1 children)

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

[โ€“] [email protected] 12 points 2 weeks ago

Recursion is its own reward