|
|
|
|
|
by platz
3791 days ago
|
|
here is the output of main = print $ product [1..100]
ghc-core-html --ghc-option=-ddump-simpl --ghc-option=-dsuppress-all fact.hs
https://rawgit.com/jonschoning/c4ad2129aa7d258e65f9/raw/f8ed...you can see main_go (plusInteger x_a3Sq main4) (timesInteger eta_B1 x_a3Sq);
where it compiles to a recursive loop with an accumulatortypicall the [1..100] gets compiled to (enumFromTo 1 100) and it can be desugared further.. so, yeah, foldmap compiles to foldr which may compile down further |
|
GHC rewrites most of the common built-in functions to eliminate intermediate trees and lists. You can see a list https://downloads.haskell.org/~ghc/7.0.1/docs/html/users_gui... (section 7.14.4; ctrl-f "good producer").