Hello staafmeister,
Thursday, September 10, 2009, 3:54:34 PM, you wrote:
> What do you think about such a function? This function is
a bit of refactoring
-- "global variable" in haskell way
cache = unsafePerformIO $ newIORef M.empty
memo f x = unsafePerformIO$ do
m <- readIORef cache
case M.lookup x m of
Just y -> return y
Nothing -> do let res = f x
writeIORef cache $ M.insert x res m
return res
memo2 = curry . memo . uncurry
--
Best regards,
Bulat mailto:[email protected]
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe