[Haskell-cafe] Why does Haskell have the if-then-else syntax?
jon.fairbairn at cl.cam.ac.uk
Thu Jul 27 05:22:31 EDT 2006
On 2006-07-27 at 01:33EDT Paul Hudak wrote:
> 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 a sense, it explicitly wasn't: I suggested "if _ then _
else _ fi" -- something I was long used to from Algol68 --
but it was rejected on the ground that there wasn't a
dangling else problem in Haskell. I probably muttered
something about wanting things to be self-bracketing (I've
certainly grumbled inwardly since about having to write "(if
_ then _ else _)¹" in some Haskell contexts), but since I'm
quite slow witted, I expect that the discussion had moved on
> 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".
Did we talk about Dijkstra's "fat bar", or was that a
discussion I had elsewhere?
 which I find ugly, and besides, making all like
constructs self-bracketing would have allowed a saner (to my
mind) layout rule.
Jón Fairbairn Jon.Fairbairn at cl.cam.ac.uk
More information about the Haskell-Cafe