• 50gp@kbin.social
    link
    fedilink
    arrow-up
    3
    arrow-down
    2
    ·
    edit-2
    9 months ago

    at which point do you blame the language for not implementing it natively?

    • Aatube@kbin.social
      link
      fedilink
      arrow-up
      6
      ·
      edit-2
      9 months ago

      Isn’t %2 already native?

      (BTW this thing failed JavaScript so hard ECMA immediately included it in that year’s standard)

    • 𝘋𝘪𝘳𝘬@lemmy.ml
      link
      fedilink
      English
      arrow-up
      5
      ·
      9 months ago

      at which point do you blame the language for not implementing it natively?

      Erm … What more native than number % 2 do you want to have it?

      • Ephera@lemmy.ml
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        4
        ·
        edit-2
        9 months ago

        2.is_even()

        (I don’t know, if this is possible in JS.)

        • 𝘋𝘪𝘳𝘬@lemmy.ml
          link
          fedilink
          English
          arrow-up
          4
          ·
          9 months ago

          Let’s call the number variable just x, you then have literal math (Euclidean division) if you ignore === instead of = for equals.

          x % 2 === 0
          

          This can’t get better or more native than “just math”. This is the whole code you need to detect if a number is even. I wouldn’t even call it “code”.

          If you remove whitespaces and ignore the type you end up with x%2==0 which is 6 characters long and a fully valid if clause. No magic involved, no abstraction, no weird function calls on integers …

          I see that in modern JS this type of coding is a trend, but you can’t tell me you want to replace 6 characters with an own module or a package. :)

          • Ephera@lemmy.ml
            link
            fedilink
            English
            arrow-up
            1
            arrow-down
            1
            ·
            9 months ago

            No, I want that in the std lib. Yes, it would just call x % 2 == 0 underneath. But the advantage is readability. I’m in principle aware that x % 2 == 0 is true when the number is even, but I need it seldomly enough that I do still need to think about it for a second before I know for sure. I don’t need to think about x.is_even(). And the readability is what I want natively, i.e. in the std lib.

            It being in the std lib would also sidestep your concerns about security or the function call having unknown side effects.

    • Rikudou_Sage@lemmings.world
      link
      fedilink
      English
      arrow-up
      5
      ·
      9 months ago

      I mean, does any language implement is_odd() natively? Doesn’t everyone implement modulus and pretty much assumes that you remember modulus from elementary and can infer that even numbers are those where x % 2 == 0.