<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Haskell does not maintain a cache mapping function calls to their values, so if you have some function f and call it with, say, the argument 7 in two different places in your code, then it will re-evaluate the function at each point. &nbsp;The only time it will not do this is when it can see explicitly that the value will be shared, i.e. situations like "g (f 7) (f 7)" should only result in one evaluation of f 7 in simple cases, presuming the compiler is sufficiently smart.<div><br></div><div>Cheers,</div><div>Greg</div><div><br><div><div><div><div><div><br><div><div>On Dec 15, 2009, at 7:32 PM, michael rice wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><table cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top" style="font: inherit;">I'm looking here at the Fibonacci stuff:<br><br><a href="http://www.haskell.org/haskellwiki/Memoization">http://www.haskell.org/haskellwiki/Memoization</a><br><br>Since (I've read) Haskell never computes the value<br>of a function more than once, I don't understand the<br>need for memoization.<br><br>Enlighten me.<br><br>Michael<br><br></td></tr></tbody></table><br>

      _______________________________________________<br>Haskell-Cafe mailing list<br><a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>http://www.haskell.org/mailman/listinfo/haskell-cafe<br></blockquote></div><br></div></div></div></div></div></div></body></html>