This doesn’t get rid of the if statements. It hides them.
It doesn’t hide. It makes them happen first and, here’s the important bit, closes their scope quickly.
It has conditionals not but actual if statements. Not really different in functionality but a more consistent style.
They’re still ifs. They’ve just been lambda’d and assigned to constants.
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.
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.
The title of the post is “how to avoid if-else hell”, not “how to avoid conditionals”. Not sure what’s your point.