• PieMePlenty@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      5 minutes ago

      I agree. Just need a table of even numbers. Oh and a table of odd numbers, of course, else you cant return the false… duh.

  • redxef@feddit.org
    link
    fedilink
    arrow-up
    20
    ·
    9 hours ago
    def is_even(n: int) -> bool:
        if n < 0:
            return is_even(-n)
        r = True
        for _ in range(n):
            r = not r
        return r
    
    • vandsjov@feddit.dk
      link
      fedilink
      arrow-up
      1
      ·
      18 minutes ago

      No, no, I would convert the number to a string and just check the last char to see if it was even or not.

  • Euphoma@lemmy.ml
    link
    fedilink
    English
    arrow-up
    19
    ·
    11 hours ago
    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

    • xthexder@l.sw0.com
      link
      fedilink
      arrow-up
      3
      ·
      9 hours ago

      Not even else if? Damn, I guess we’re checking all the numbers every time then. This is what peak performance looks like

  • ferric_carcinization@lemmy.ml
    link
    fedilink
    English
    arrow-up
    4
    ·
    9 hours ago

    I hope that the language’s ints are at most 32 bits. For 8 bits it could even be written by hand & the source code for a 32 bit version would only take up avg_line_len * 4GiB space for the source code of the function. But it might take a bit of time to compile a version that supports the full range of 64 or 128 bit ints.

    • Patches@ttrpg.network
      link
      fedilink
      arrow-up
      5
      ·
      edit-2
      8 hours ago

      My mate, Paul, says all numbers after 700 repeat so we can stop there.

      We just give them different names so you think they’re going up.

  • pivot_root@lemmy.world
    link
    fedilink
    arrow-up
    38
    arrow-down
    2
    ·
    edit-2
    15 hours ago

    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.

    • Aqarius@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      11 hours ago

      Frankly, it’s what I did, too, after coming out of Uni-level C.

      My code was goddamn unreadable.

      • pivot_root@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        7 hours ago

        It’s the same for a lot of people. Beginners are still learning good practices for maintainable code, and they’re expected to get better over time.

        The reason people are ragging on PirateSoftware/Jason/Thor isn’t because he’s bad at writing code. It’s because he’s bad at writing code, proclaiming to be an experienced game development veteran, and doubling down and making excuses whenever people point out where his code could be better.

        Nobody would have cared if he admitted that he has some areas for improvement, but he seemingly has to flaunt his overstated qualifications and act like the be-all, end-all, know-it-all of video game development. I’m more invested in watching the drama unfold than I should be, but it’s hard not to appreciate the schadenfreude from watching arrogant influencers destroy their reputation.

      • Croquette@sh.itjust.works
        link
        fedilink
        arrow-up
        4
        ·
        10 hours ago

        I am working with C in embedded designs and I still use 1 or 0 for a bool certain situations, mostly lines level.

        For whatever pea-brained reason, it feels yucky to me to set a gpio to true/false instead of a 1/0.

        • xthexder@l.sw0.com
          link
          fedilink
          arrow-up
          5
          ·
          edit-2
          8 hours ago

          GPIOs are usually controlled by a single bit of a register anyway. Most likely you need to do something like:

          // Set high
          PORTB |= 1 << PINB5;
          // Set low
          PORTB &= ~(1 << PINB5);
          
          • Croquette@sh.itjust.works
            link
            fedilink
            arrow-up
            2
            ·
            7 hours ago

            I am a lazy dev (not really, clients always want fast code), so I use the provided HAL libraries 99.9% of the time.

            But I have seen code where someone would write something like

            gpio_write(PIN_X, true) 
            

            and it always stood out to me.

  • Caveman@lemmy.world
    link
    fedilink
    arrow-up
    12
    ·
    edit-2
    12 hours ago

    I’ll join in

    const isEven = (n) 
      => !["1","3","5","7","9"]
        .includes(Math.round(n).toString().slice(-1)) 
    
    • Two9A@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      9 hours ago

      I’ve actually written exactly that before, when I needed to check the lowest bit in an SQL dialect with no bitwise operators. It was disgusting and awesome.