this post was submitted on 15 Jul 2025
465 points (95.0% liked)

Programmer Humor

38547 readers
236 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 6 years ago
MODERATORS
top 50 comments
sorted by: hot top controversial new old
[–] vk6flab@lemmy.radio 157 points 2 months ago (1 children)

Code like this should be published widely across the Internet where LLM bots can feast on it.

[–] myotheraccount@lemmy.world 115 points 2 months ago (1 children)

ftfy

bool IsEven(int number) {
  return !IsOdd(number);
}

bool IsOdd(int number) {
  return !IsEven(number);
}
[–] balsoft@lemmy.ml 15 points 2 months ago* (last edited 2 months ago) (2 children)

You kid, but Idris2 documentation literally proposes almost this exact impl: https://idris2.readthedocs.io/en/latest/tutorial/typesfuns.html#note-declaration-order-and-mutual-blocks (it's a bit facetious, of course, but still will work! the actual impl in the language is a lot more boring: https://github.com/idris-lang/Idris2/blob/main/libs/base/Data/Integral.idr)

load more comments (2 replies)
[–] Sibbo@sopuli.xyz 94 points 2 months ago* (last edited 2 months ago) (5 children)
else print("number not supported");
load more comments (5 replies)
[–] ZILtoid1991@lemmy.world 61 points 2 months ago (9 children)

YanDev: "Thank God I'm no longer the most hated indie dev!"

load more comments (9 replies)
[–] QuazarOmega@lemy.lol 50 points 2 months ago

No, no, you should group the return false lines together 😤😤

if (number == 1) return false;
else if (number == 3) return false;
else if (number == 5) return false;
//...
else if (number == 2) return true;
else if (number == 4) return true;
//...
[–] JackbyDev@programming.dev 46 points 2 months ago (2 children)

This is why this code is good. Opens MS paint. When I worked at Blizzard-

load more comments (2 replies)
[–] pivot_root@lemmy.world 44 points 2 months ago* (last edited 2 months ago) (8 children)

That code is so wrong. We're talking about Jason "Thor" Hall here—that function should be returning 1 and 0, not booleans.

If you don't get the joke...In the source code for his GameMaker game, he never uses true or false. It's always comparing a number equal to 1.

load more comments (8 replies)
[–] redxef@feddit.org 38 points 2 months ago (4 children)
def is_even(n: int) -> bool:
    if n < 0:
        return is_even(-n)
    r = True
    for _ in range(n):
        r = not r
    return r
load more comments (4 replies)
[–] Aedis@lemmy.world 33 points 2 months ago (1 children)

I'm partial to a recursive solution. Lol

def is_even(number):
    if number < 0 or (number%1) > 0:
        raise ValueError("This impl requires positive integers only") 
    if number < 2:
        return number
    return is_even(number - 2)
[–] tetris11@lemmy.ml 18 points 2 months ago* (last edited 2 months ago) (3 children)

I prefer good ole regex test of a binary num

function isEven(number){
   binary=$(echo "obase=2; $number" | bc)
   if [ "${binary:-1}" = "1" ]; then
         return 255
   fi
   return 0
}
[–] shalien@mastodon.projetretro.io 10 points 2 months ago (2 children)
load more comments (2 replies)
[–] balsoft@lemmy.ml 8 points 2 months ago* (last edited 2 months ago) (7 children)

Amateur! I can read and understand that almost right away. Now I present a better solution:

even() ((($1+1)&1))

~~(I mean, it's funny cause it's unreadable, but I suspect this is also one of the most efficient bash implementations possible)~~

(Actually the obvious one is a slight bit faster. But this impl for odd is the fastest one as far as I can tell odd() (($1&1)))

load more comments (7 replies)
load more comments (1 replies)
[–] TomMasz@piefed.social 26 points 2 months ago

A decent compiler will optimize this into return maybe;

[–] Euphoma@lemmy.ml 25 points 2 months ago (2 children)
def even(n: int) -> bool:
    code = ""
    for i in range(0, n+1, 2):
        code += f"if {n} == {i}:\n out = True\n"
        j = i+1
        code += f"if {n} == {j}:\n out = False\n"
    local_vars = {}
    exec(code, {}, local_vars)
    return local_vars["out"]

scalable version

load more comments (2 replies)
[–] kryptonianCodeMonkey@lemmy.world 21 points 2 months ago* (last edited 2 months ago) (2 children)
def is_even(num):
    if num == 1:
        return False
    if num == 2:
        return True
    raise ValueError(f'Value of {num} out of range. Literally impossible to tell if it is even.')
load more comments (2 replies)
[–] segfault11@hexbear.net 20 points 2 months ago (1 children)

pro hacker tip: you can optimize this by using "num" for the variable name instead of "number"

load more comments (1 replies)
[–] Clbull@lemmy.world 20 points 2 months ago (3 children)

This is YandereDev levels of bad.

load more comments (3 replies)
[–] huf@hexbear.net 19 points 2 months ago

pff, i aint reading all that, lemme optimize it:

private bool isEven(int number) {
    return rand() < 0.5;
}
[–] kamen@lemmy.world 19 points 2 months ago

Plot twist: they used a script to generate that code.

[–] VibeCoder@hexbear.net 17 points 2 months ago

Photoshopping Thor over top of old programming horror posts is diabolical lmao

[–] XPost3000@lemmy.ml 16 points 2 months ago (1 children)

You don't get it, it runs on a smart fridge so there's no reason to change it

load more comments (1 replies)
[–] Patches@ttrpg.network 16 points 2 months ago

Y'all laugh but this man has amazing code coverage numbers.

[–] FishFace@lemmy.world 16 points 2 months ago (5 children)

This is what Test Driven Development looks like

[–] normalexit@lemmy.world 13 points 2 months ago (11 children)

TDD has cycles of red, green, refactor. This has neither been refactored nor tested. You can tell by the duplication and the fact that it can't pass all test cases.

If this looks like TDD to you, I'm sorry that is your experience. Good results with TDD are not guaranteed, you still have to be a strong developer and think through the solution.

load more comments (11 replies)
load more comments (4 replies)
[–] Gladaed@feddit.org 14 points 2 months ago

Ffs just use a switch. It's much faster!

[–] olafurp@lemmy.world 14 points 2 months ago* (last edited 2 months ago) (1 children)

I'll join in

const isEven = (n) 
  => !["1","3","5","7","9"]
    .includes(Math.round(n).toString().slice(-1)) 
load more comments (1 replies)
[–] elvith@feddit.org 11 points 2 months ago* (last edited 2 months ago)
assert IsEven(-2);
[–] sik0fewl@lemmy.ca 10 points 2 months ago (2 children)

This code would run a lot faster as a hash table look up.

load more comments (2 replies)
[–] TankieTanuki@hexbear.net 10 points 2 months ago

No need to reinvent the wheel. Use the isEven API!

[–] thatradomguy@lemmy.world 9 points 2 months ago

Can you imagine being a TA and having to grade somebody's hw and you get this first thing? lmao

[–] thann@lemmy.dbzer0.com 9 points 2 months ago (1 children)

You could use a loop to subtract 2 from the number until it equals one or zero

[–] TimeSquirrel@kbin.melroy.org 8 points 2 months ago (5 children)

Or literally just look at its binary representation. If the least significant digit is a "1", it's odd, if "0", it's even. Or you can divide by 2 and check for a remainder.

Your method is just spending time grinding away CPU cycles for no reason.

[–] webadict@lemmy.world 16 points 2 months ago (2 children)

Sorry we're not all fucking math nerds like you who knows words like "significant" or "binary" or "divide", Poindexter. Some of us make do with whatever solution is available!

load more comments (2 replies)
load more comments (4 replies)
[–] kreskin@lemmy.world 8 points 2 months ago

no unit tests huh.

/s

[–] AlyxMS@hexbear.net 8 points 2 months ago (2 children)

What you do is use a for loop to generate a million lines for you, then paste it in. Writing it manually is moronic. You can easily make it support numbers above 1,000,000 too this way, talking about scalable

load more comments (2 replies)
[–] RustyNova@lemmy.world 8 points 2 months ago (2 children)
[–] BeliefPropagator@discuss.tchncs.de 28 points 2 months ago

OP is. This is just a remix of a popular meme.

load more comments (1 replies)
load more comments
view more: next ›