• @[email protected]
    link
    fedilink
    English
    606 days ago

    what would be the alternative? to always execute if the condition is true, but sometimes execute it even when false, for funsies?

    • Admiral Patrick
      link
      fedilink
      English
      40
      edit-2
      6 days ago

      Hey, I like a little chaos in my codebase 😆

      const funsies = () => (Math.round(Math.random() * 1000) % 2 == 0)
      if ( condition || funsies() ) {
          // do the thing
      }
      
      • @[email protected]
        link
        fedilink
        English
        4
        edit-2
        5 days ago

        Wait, why the the *1000 or mod 2? Won’t that give a 50\50 chance or the same as Math.round(Math.random).

        No shade, and I may be wrong myself I am very tired

        • @[email protected]
          link
          fedilink
          English
          25 days ago

          Probably to make the fractional random value between 0 and 1 to become an integer so that you can divisibility check for even with mod 2

        • Admiral Patrick
          link
          fedilink
          English
          19
          edit-2
          6 days ago

          Nope. I’m staunchly against “AI”. If the code sucks, it’s because I wrote bad code.

          Edit: Oh, or did you mean is that how “AI” works?

        • Admiral Patrick
          link
          fedilink
          English
          2
          edit-2
          5 days ago

          In Javascript, Math.random() produces a float value between 0 and 1, so I multiply by 1000 and round it to get a larger integer. The value %2 == 0 is a non-library way of performing isEven() on the random integer (value % 2 is 0 if even, 1 if odd, and the ==0 makes it return a boolean). When used in the if statement, it’s essentially a coin flip.

          • @[email protected]
            link
            fedilink
            English
            223 hours ago

            does javascript not allow you to interpret integers as booleans in a conditions directly? seems it’d be simpler to just do math.round(math.random()), which should still get you true (1) or false (0) in equal likelihood. or am i missing something?

            • Admiral Patrick
              link
              fedilink
              English
              1
              edit-2
              14 hours ago

              It’ll give you 1 ~= true or 0 ~= undefined, but I typically use Typescript which prefers actual booleans to boolean-ish

    • @[email protected]
      link
      fedilink
      English
      176 days ago

      The “only” part implies exclusivity, which may be false, because other things might run the code anyway.

      IF “I can see the sun” THEN “It’s day.”

      Nothing wrong about that. However if we make it exclusive:

      IF AND ONLY IF “I can see the sun” THEN “It’s day.”

      That’s obviously wrong. I can actually not keep the day away by sitting with closed eyes in my mothers basement with the curtains shut.

      “Only if” might make sense in a legal contract, but there’s no way a piece of code can stop other pieces of code from calling the same functions.

      • @adj16
        link
        English
        14 days ago

        But that’s not how if statements in code work. So what you’ve said isn’t wrong, but the premise of this meme is completely off

        • @[email protected]
          link
          fedilink
          English
          1
          edit-2
          4 days ago

          Yes sure. Code is logical stepwise. By including the “only if” it implies that other stuff is taken into account, which it isn’t at that moment in code.

          I mean, I don’t need to extend the implications of an IF statement. It already does exactly what it says.

          Anyway fuzzy logic does exist for people who want “sometimes if”. It’s useful in certain cases. I’ve only ever considered it in music production, where things very often get to the point of complexity where it makes a (sometimes) useful difference.

    • @General_Effort
      link
      English
      7
      edit-2
      6 days ago

      In normal parlance, “if and only if” rules out that something could also happen as a result of other circumstances. EG, if you fall out of a plane, you will lose your glasses. But there are other conditions that would lead to the same result.

      In code, the alternative would be to have a different if statement that executes identical code. Or *cough* you could use a jump instruction to execute literally the same code.

    • @_bcron_
      link
      English
      36 days ago

      deleted by creator