On Wed, Jun 09, 2010 at 11:47:32PM +0300, Markus Läll wrote: > As the function doing (x:_:rest) pattern-matching was the fastest I > extended the idea from that to (x1:_:x2: ... x10:_:rest), but skipping > from 5 to 10, where all steps showed a small increase in performance. > > So a question: when increasing the pattern matched, is it somekind of > way of inlining the matchings, and if so, is there some way of just > saying that to the compiler how many recursions you want to inline > together to increase speed?
What you are describing is somewhat akin to a loop unrolling optimization, which is a fairly common thing for a compiler to do. However, as you described it, it is not actually a valid optimization in haskell. compare take 2 (matchPattern5 (1:2:3:4:undefined)) => undefined take 2 (matchPattern (1:2:3:4:undefined)) => [1,3] John -- John Meacham - ⑆repetae.net⑆john⑈ - http://notanumber.net/ _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe