[Haskell-cafe] Why does Haskell have the if-then-else syntax?
Mike Gunter
m at ryangunter.com
Fri Jul 28 00:32:47 EDT 2006
Thanks for the answer. (And doubly thanks for giving the answer I
hoped for!)
I propose that ifThenElse and thenElseIf be added to the Prelude for
Haskell'. While these names are a bit long, I think we want both
functions and these names make the behaviors clear (to me, at least).
Comments?
-m
Paul Hudak <paul.hudak at yale.edu> writes:
> 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,
>>-m
>>
>>
> 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.
>
> -Paul
More information about the Haskell-Cafe
mailing list