On 12 Jan 2008, at 3:30 PM, David Benbennick wrote:

On 1/12/08, Henning Thielemann <[EMAIL PROTECTED]> wrote:
Caching is not the default, but you can easily code this by yourself: Define an array and initialize it with all function values. Because of
lazy evaluation the function values are computed only when they are
requested and then they persist in the array.

But how can I implement memoization for a more complicated function?
For example, perhaps I want to memoize

f :: String -> Int -> Double -> String -> Bool

In Python, it's pretty easy to memoize this.  How can I do it in
Haskell?  I suspect the only way would involve changing the function
signature to use IO or ST.

It would be nice if I could just tell the compiler "I command you to
memoize this function", and have it produce the required code
automatically.

You can cache anything using mutable hash tables, as you know, and googling will find you `function's in Haskell that do this for you.

jcc


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to