[Haskell-cafe] Non-Overlapping Patterns

Andrew Coppin andrewcoppin at btinternet.com
Mon May 5 11:07:46 EDT 2008

PR Stanley wrote:
> To put it another way, why doesn't the interpreter identify the more 
> specific cases and put them before the general ones.

I'm guessing because determining which equation is the "most general" is 
equivilent to the Halting Problem in the general case. (Notice that 
Mathematica does almost exactly the same thing: it has a few heuristics 
for figuring out what is more general, but beyond that it uses the order 
you specify.)

As to how function application is actually implemented - well, that 
depends on what you're using to run your Haskell. ;-) I believe GHC uses 
pointer blocks rather than switch blocks (loosely speaking).

More information about the Haskell-Cafe mailing list