It doesn't matter. Laziness would be affected if, for instance, something is not evaluated without CSE and is evaluated with it.
In your example either all or none of 'a' and 'b' get evaluated, depending on whether the top-level expression is evaluated. * Victor Gorokgov <[email protected]> [2012-02-18 18:23:19+0400] > example = a + b + a + b > > exampleCSE = x + x > where x = a + b > > With CSE we are introducing new thunk: x. > > 18.02.2012 17:38, Roman Cheplyaka пишет: > >* Holger Siegel<[email protected]> [2012-02-18 12:52:08+0100] > >>You cannot. Common subexpression elimination is done by GHC very > >>conservatively, because it can not only affect impure programs: it can > >>also affects strictness/lazyness and worsen memory usage of pure code. > >>Like the HaskellWiki says: "If you care about CSE, do it by hand." > >How can it affect strictness or laziness? -- Roman I. Cheplyaka :: http://ro-che.info/ _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
