Re[Haskell-cafe] [2]: memoization

Bulat Ziganshin bulat.ziganshin at
Thu Sep 10 08:50:54 EDT 2009

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


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 at

More information about the Haskell-Cafe mailing list