There's a very good StackOverflow question which covers this: "When is memoization automatic in GHC?"[1]. I found it really cleared up the issue for me.
[1]: http://stackoverflow.com/questions/3951012/when-is-memoization-automatic-in-ghc-haskell On Sat, Jun 15, 2013 at 9:13 PM, Clark Gaebel <cgae...@uwaterloo.ca> wrote: > Yes. In general, GHC won't CSE for you. > > - Clark > > > On Saturday, June 15, 2013, Christopher Howard wrote: > >> On 06/15/2013 04:39 PM, Tommy Thorn wrote: >> > >> > >> > There's not enough context to answer the specific question, >> > but lazy evaluation isn't magic and the answer is probably "no". >> > >> > Tommy >> > >> >> Perhaps to simplify the question somewhat with a simpler example. >> Suppose you have >> >> code: >> -------- >> let f x = if (x > 4) then f 0 else (sin x + 2 * cos x) : f (x + 1) >> -------- >> >> After calculating at x={0,1,2,3}, and the cycle repeats, are sin, cos, >> etc. calculated anymore? >> >> -- >> frigidcode.com >> >> > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe