Peak code reuse
Peak code reuse
Peak code reuse
Oh, Python!
To fix this, add if(num == 255) return true;
before line 10.
Peak efficiency there.
But use 2147483647 to be safe.
Will this ever return? Won't it just overflow the stack?
Yep, this will cause a stack overflow.
Program it with template meta programming and cause a stack overflow when compiling 🤓😎
Boss: don't spend any time on it, just vibe code a solution.
You: sure, I enjoy receiving a salary, what could go wrong?
Mood...
https://www.npmjs.com/package/is-even
don't look at the weekly downloads if you are faint of heart.
To be fair in a dynamic typed language with dumb string to int coercions, I kinda get why such a library would exists. So it's more a symptom of terrible language design than modern dependency hell.
If you really want to see some horror, follow the dependencies
https://10xengineersqualityprogramming.github.io/ https://www.npmjs.com/package/@falsejs/falsejs This is hilarious, has 262 of the best useless dependencies. In all seriousness though how does anyone ever audit a npm package, it's dependency hell!
Fixed
boolean isOdd(int num) { if(num == 1) return true; if(num > 0) return isEven(num - 1); else return isEven(num + 1); } boolean isEven(int num) { if(num > 0) return isOdd(num - 1); else return isOdd(num + 1); }
the downside with this approach is that it will eventually terminate. the version in the original post has the advantage of giving me plenty of time to contemplate life’s many mysteries.
What can I say, I'm a performance nerd.
isEeven(∞);
Why the complicated if statements to check the sign? Just let the number overflow. Would be functionaly the same, and result in much prettier code.
That's a platform dependent change. Overflow is undefined behavior. I'd rather have my code portable so it can run on my Univac 1101.
isEven(0) -> true; isEven(Num) -> isOdd(Num-1). isOdd(0) -> false; isOdd(Num) -> isEven(Num-1).
Hmm.
isEven(-2)...out of stack error
Nah, tail recursion optimization can just reuse the same stack frame again and again. It's going to loop until it wraps around what ever integer width it has and then tells you if the biggest integer is even or odd. Or, if it's nice, it's going to complain about the wrap around
When it fails, it at least points you to the site where everyone asks for help.
Closed as unclear
easy fix... if infinity return false.
mathematical breakthrough bonus proof: all numbers are neither even nor odd.
Removed by Moderator — Modlog
Removed by Moderator — Modlog
Maybe memo just to be safe, but LGTM!
isOdd(10000001);
this incident has been reported
You should make it
oddNumbers.includes(num%10000000)
...And if not, unicorns!