[Haskell-cafe] Why does Haskell have the if-then-else syntax?
paul.hudak at yale.edu
Thu Jul 27 01:33:06 EDT 2006
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?
Thanks for asking about this -- it probably should be in the paper. Dan
Doel's answer is closest to the truth:
I imagine the answer is that having the syntax for it looks nicer/is
clearer. "if a b c" could be more cryptic than "if a then b else c"
for some values of a, b and c.
except that there was also the simple desire to conform to convention
here (I don't recall fewer parentheses being a reason for the choice).
In considering the alternative, I remember the function "cond" being
proposed instead of "if", in deference to Scheme and to avoid confusion
with people's expectations regarding "if".
A related issue is why Haskell does not have a "single arm" conditional
-- i.e. an "if-then" form, which would evaluate to bottom (i.e. error)
if the predicate were false. This was actually discussed, but rejected
as a bad idea for a purely functional language.
More information about the Haskell-Cafe