[Haskell-cafe] Guards (Was: Some random newbie questions)
Henning Thielemann
iakd0 at clusterf.urz.uni-halle.de
Fri Jan 7 05:28:18 EST 2005
On Fri, 7 Jan 2005, Simon Peyton-Jones wrote:
> | * As far as I can determine, there is no way to check pattern matches
> for
> | exhaustiveness. Coming from OCaml, this feels like losing a
> significant
> | safety net! How do people program so as not to be getting dynamic
> match
> | failures all the time?
>
> GHC has -fwarn-incomplete-patterns and -fwarn-overlapped-patterns. But
> the code implementing these checks is old and crufty, and the warnings
> are sometimes a bit wrong -- at least when guards and numeric literals
> are involved. I think they are accurate when you are just using
> "ordinary" pattern matching.
>
> Cleaning up this bit of GHC is a long-standing to-do item, if anyone
> feels motivated to undertake it. It's a well-defined task, with plenty
> of well-written papers explaining how to do it -- but it's tricker than
> it seems at first!
What about dropping Guards? :-) Are they necessary? Do they lead to more
readable source code? Do they lead to more efficient code? I could
perfectly live without them up to now.
More information about the Haskell-Cafe
mailing list