Hello Mattias, I think you will find this thread from the haskell-cafe mailing list quite helpful. Re: [Haskell-cafe] Memoization http://www.mail-archive.com/haskell-cafe@haskell.org/msg09924.html
Also, the Haskell wiki contains comments about techniques for memoization along with references at the bottom. Haskell wiki Memoization: http://www.haskell.org/haskellwiki/Memoization Hope that helps. __ Donnie Jones On Thu, Dec 11, 2008 at 10:18 AM, Mattias Bengtsson < moonl...@dtek.chalmers.se> wrote: > The program below computes (f 27) almost instantly but if i replace the > definition of (f n) below with (f n = f (n - 1) * f (n -1)) then it > takes around 12s to terminate. I realize this is because the original > version caches results and only has to calculate, for example, (f 25) > once instead of (i guess) four times. > There is probably a good reason why this isn't caught by the compiler. > But I'm interested in why. Anyone care to explain? > > > main = print (f 27) > > > > f 0 = 1 > > f n = let f' = f (n-1) > > in f' * f' > > (compiled with ghc --make -O2) > > Mattias > > _______________________________________________ > 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