Hi Patrick,

Yes, this will optimise to "a nice balanced tree of decisions with dense jump tables in the leafs" [1]. You can check out the comments in [1] for more details.

[1] https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmSwitch.hs#L37

Hope that helps,
Rahul

On Thu, Apr 13, 2017 at 3:55 AM, Patrick Pelletier <code@funwithsoftware.org> wrote:
Suppose I am doing a pattern match on a large number of consecutive (or mostly-consecutive) integers:

foo 0 = something
foo 1 = somethingElse
...
foo 1000 = anotherThing

Will GHC optimize this to a table lookup, or is it going to test each integer in turn?  Am I better off using a Vector or Map instead of pattern matching?

Thanks,

--Patrick

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners



--
Rahul Muttineni