
Mike Gunter wrote:
I had hoped the "History of Haskell" paper would answer a question I've pondered for some time: why does Haskell have the if-then-else syntax? The paper doesn't address this. What's the story?
For what it's worth, I have been asking myself the same question several times. If/then/else syntax could be replaced by a regular (lazy) function without any noticeable loss. Almost every time I use if/then/else I end up changing it to a case expression on teh underlying data (which is almost never Bool); the only exception being simple one liners, and for those a function would be even more concise. IMHO, the next standardized version of Haskell, however named, should abandon the special if/then/else syntax so we'll have at least /one/ item where the language becomes smaller and simpler. Remember: Perfection is reached not when there is nothing more to add, but rather when there is nothing more to take away. On another note, I remember reading a paper proposing to generalize if/then/else to arbitrary (so-called) dist-fix operators, using something like partial backquoting, as in `if condition `then` true_branch `else` false_branch fi` Can't remember the exact title of the paper, nor the details, but it was something to do with adding macros to Haskell. Cheers, Ben