I was going through my library and while
scanning through everything something germane caught my eye. It was from
something that Stephen Gilmore of The University of Edinburgh wrote, namely
"Programming in Standard ML '97: A Tutorial Introduction". A copy can be gotten
from the Moscow ML home page. I feel that he put the matter well. In section 1.2
he writes: "It is ... perfectly easy to
imagine users finding fault with a correct program which has some missing
functionality which they would like."
With this there is also a temptation to
screw things up if you have the power to do so. If may feel democratic, but you
won't really be doing anyone a favor. There is a need to reserve judgment until
a comprehensive understanding and appreciation of the language is achieved. For
example, I find it curious that if-then-else constructs are defined in terms of
case-of and not the other way around. This is conspicuous and so there may be
good cause for why it was done this way. I chose to err on the possibility that
the Forefathers of Haskell knew what they were doing and it is just that I do
not yet fully understand the why. The if-then-else construct as it is
defined in other languages is more general than case-of.
It appears that in Haskell the
if-then-else construct though a prominent feature of many languages has no
real significance as Haskell is concerned and is there solely for
convenience. Rather than molesting Haskell to make nice to those whose delicate
sensibilities are offended by how the if-then-else construct has been formulated
it may be best to remove the if-then-else construct from the language altogether
since it appears that the if-then-else construct was an ad-hoc addition or is a
vestigial appendage that serves only to confuse the
reader.