They key to this change (if -> ternary) is the elimination of statements and blocks and a shift to expressions.
The use of statements and blocks is an imperative style of programming and are unnecessary in functional programs.
When you eliminate statements and blocks, you will find that your code will naturally become more functional.
One is not any more complex than the other, the complexity is the same! It is just that you are less familiar with the syntax because you have had more exposure to the other syntax and less to this, which has created a familiarity bias.
For me, it is the opposite, it is much more readable!
An example of this is seeing a new word for the first time like 'perfidious'. Having never seen it, you might have to read each letter and sound it out in your head. You might also prefer to use it's synonym 'disloyal', which you feel is "easier". After all, 'disloyal' is the word that you grew up with.
But after you have sounded the word out a couple times, know the definition and have used it in a few sentences, it will start to become second nature. You can now quickly glace at the word 'perfidious', pausing no longer than you would when reading other words as it becomes more and more familiar with time.
And now that you have added more words to your vocabulary, you can more effectively communicate because you have more tools to pull from your toolbox.
I promise, readability will come with time.
I'm perfectly familiar with the operator, I just find this usage needlessly difficult to follow and debug.
Mind you I avoid ifelse for the same reason 😊
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.