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

Reply via email to