我怀疑一个给定的程序没有像它那样融合并且做了这个测试以确认:
module Main where
import qualified Data.Vector.Unboxed as V
main :: IO ()
main = do
let size = 100000000 :: Int
let array = V.replicate size 0 :: V.Vector Int
let incAll = V.map (+ 1)
print
. V.sum
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll
. incAll …Run Code Online (Sandbox Code Playgroud)