[Haskell-beginners] will GHC optimize pattern-matching on integers?
Patrick Pelletier
code at funwithsoftware.org
Fri Apr 14 02:11:31 UTC 2017
Thanks! That's exactly what I was hoping.
--Patrick
On 4/13/17 1:41 AM, Rahul Muttineni wrote:
> 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 at funwithsoftware.org <mailto:code at 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 at haskell.org <mailto:Beginners at haskell.org>
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
> <http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners>
>
>
>
>
> --
> Rahul Muttineni
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20170413/22ef70f7/attachment.html>
More information about the Beginners
mailing list