wren ng thornton wrote:
I have long been disappointed by a number of `error`s which shouldn't
be. For example, the fact that `head` and `div` are not total strikes me
as a (solvable) weakness of type checking, rather than things that
should occur as programmer errors/exceptions at runtime. The use of
`error` in these cases muddies the waters and leads to a laissez-faire
attitude about when it's acceptable to throw one's hands up in despair
and use `error` rather than writing a better function.
head uses "error" in precisely the correct, intended fashion.
head has a precondition (only call on non-empty lists) and the "error"
is just there to give you some hint that you made a mistake - got the
precondition wrong.
It's certainly not intended to be catchable. And that is a correct use
of error.
There are programming styles which avoid using 'head'. You are free to
use those if you don't like it. I myself am content to use 'head' on
lists which I know are guaranteed to be non-empty.
Jules
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe