
Hello staafmeister, Thursday, September 10, 2009, 4:23:26 PM, you wrote:
This doesn't work and is exactly what I'm afraid the compiler is going to do. Cache needs to be associated with the function f.
Otherwise one would get conflicts
well, technique i used is well known, we would have something like C global variable. initiating it inside function is a technique i never seen, i *expect* that it would be the same since syntax scoping doesn't change semantics, but it would be better to ask people that know haskell better if you want to disable sharing of cache you need to make function (or some string representing it) an explicit parameter. i see that you try to do it via declaring f at the outer function level and x in the inner function, but this shouldn't work. the following: outer f = inner where inner x = f x*f x and outer f x = f x*f x are exactly the same. in general, consider Haskell as pure math notation with all its features -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com