
On 7/26/06, Donn Cave
That looks to me like a different way to spell if then else, but maybe that's the answer to the question - conceptually, for every "then" there really is an "else", however you spell it, and only in a procedural language does it make any sense to leave it implicit. The exception that proves the rule is "else return ()" -, e.g.,
...
Strictly speaking that generalizes to any functional context where a generic value can be assigned to the else clause, but there don't tend to be that many other such contexts. Does that answer the question?
I believe his question was why if-then-else is syntax, rather than the function he gave. Since haskell is non-strict, it doesn't need to be implemented as syntax (unlike, say, scheme, where it needs to be a special form/macro to avoid executing both branches). 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. -- Dan