[Haskell-cafe] Use unsafePerformIO to catch Exception?
jules at jellybean.co.uk
Thu Mar 26 09:54:45 EDT 2009
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
It's certainly not intended to be catchable. And that is a correct use
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.
More information about the Haskell-Cafe