Have you tried the compiler?
On Sun, Jul 21, 2013 at 11:59 PM, Christopher Howard < christopher.how...@frigidcode.com> wrote: > When I previously asked about memoization, I got the impression that > memoization is not something that just happens magically in Haskell. Yet, > on a Haskell wiki page about > Memoization<http://www.haskell.org/haskellwiki/Memoization#Memoization_with_recursion>, > an example given is > > memoized_fib :: Int -> Integer > memoized_fib = (map fib [0 ..] !!) > where fib 0 = 0 > fib 1 = 1 > fib n = memoized_fib (n-2) + memoized_fib (n-1) > > > I guess this works because, for example, I tried "memoized_fib 10000" and > the interpreter took three or four seconds to calculate. But every > subsequent call to "memoized_fib 10000" returns instantaneously (as does > "memoized_fib 10001"). > > Could someone explain the technical details of why this works? Why is "map > fib [0 ..]" not recalculated every time I call memoized_fib? > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > > -- -- Regards, KC
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe