• @Zexks
    link
    162 months ago

    This doesn’t get rid of the if statements. It hides them.

    • @[email protected]
      link
      fedilink
      English
      142 months ago

      It doesn’t hide. It makes them happen first and, here’s the important bit, closes their scope quickly.

      • @Zexks
        link
        42 months ago

        The scope is irrelevant it’s a single function class as presented. It was a single method that they broke out “to hide the ifs”. Then they just used compiler specialties to remove the word ‘if’ from the assignments. The comparisons are still there and depending on the execution path those constants may not be so constant during runtime.

    • @BrianTheeBiscuiteer
      link
      32 months ago

      It has conditionals not but actual if statements. Not really different in functionality but a more consistent style.

      • @Zexks
        link
        12 months ago

        They’re still ifs. They’ve just been lambda’d and assigned to constants.

        • @BrianTheeBiscuiteer
          link
          32 months ago

          branching ≠ if ≠ conditional

          They’re all related but can’t just be used interchangeably. “if” is a reserved keyword to indicate a specific syntax is expected. It’s not the semantics the author was trying to change, it’s the syntax, and the overall point is that you aren’t always required to use the specific “if” syntax to write code just like you’re not required to use “while” to achieve looping.

          • @Zexks
            link
            02 months ago

            If you decompile that code you won’t get lambdas. You get ifs. Because that is how the hardware is build. Ifs/ands/Ors that is what computing is built on. Everything else is flavor.

            • @platypus_plumba
              link
              12 months ago

              The title of the post is “how to avoid if-else hell”, not “how to avoid conditionals”. Not sure what’s your point.