Personal tools

Short cut fusion

From HaskellWiki

Jump to: navigation, search

Short cut fusion is an optimizer method that merges some function calls into one.

map f . map g
can be substituted by
map (f . g)
filter p . filter q
can be substituted by
filter (\x -> q x && p x)

It can also help to remove intermediate data structures.

E.g. computing
sum [1..n]
does not require an explicit list structure, and the expression is actually translated into a simple loop.

See also correctness of short cut fusion.