[Haskell-cafe] Re: exceptions vs. Either

André Pang ozone at algorithm.com.au
Thu Aug 5 22:36:41 EDT 2004


On 05/08/2004, at 7:40 PM, MR K P SCHUPKE wrote:

> I have a hard time understanding why functional programmers would not 
> want
> more static typing guarantees, after all they can always use C if they
> dont like type systems!

Static guarantees are great, but if you have to explicitly change your 
style of coding to cope with those extra constraints, it can become 
(very) cumbersome.

After all, Java basically does exactly what you're asking for with 
head/tail: if you were to write a tail method in a List class, you 
could simply throw a EmptyListException.  That's really the same effect 
as tail in Haskell returning a Maybe: both forms force you to perform 
error-handling in the calling function.  However, I think Java has 
shown that forcing error-handling on the caller via exceptions is no 
magic bullet: a lazy programmer will simply catch the exception in an 
empty catch {} block.  It's a human problem, not a technical one.

Obviously exceptions, Maybes, monads etc. are useful, but forcing the 
programmer to Do The Right Thing is nearly impossible.  I personally 
think that using tricks such as type classes to propagate constraints 
and errors via the type system is a fantastic idea, because then 
end-programmers have to worry much less about handling errors properly.


-- 
% Andre Pang : trust.in.love.to.save



More information about the Haskell-Cafe mailing list