       Re: memoizing functions

• To: mathgroup at smc.vnet.net
• Subject: [mg32529] Re: memoizing functions
• From: "Robert G. Wilson v" <rgwv at kspaint.com>
• Date: Fri, 25 Jan 2002 02:58:04 -0500 (EST)
• Organization: Kansas Paint & Color Co.
• References: <a2d1fl\$ocm\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Dear Erich,

Yes, In the expression Kleber[n_,k_]:= Kleber[n,k]= ... get rid of the
"Kleber[n,k]=". An easy way to test this is the Fibonacci recursion.

Sincerely yours,
Robert G. "Bob" Wilson, V
Ph.D.  ATP  /  CF & GI

Erich Neuwirth wrote:

> I have the following )recursive) function:
>
> Kleber[0, k_] := Kleber[0, k] = 1
> Kleber[n_, 0] /; n > 0 := Kleber[n, 0] = 0
> Kleber[n_, k_] /; (n > 0) && (k > 0) && (k <= n) :=
>   Kleber[n, k] =
>     Kleber[n, k - 1] - Kleber[n - 1, k] + Kleber[n - 1, 2*k - 1] +
>       Kleber[n - 1, 2*k]
> Kleber[n_, k_] /; (n > 0) && (k > 0) && (k > n) && (k <= 2*n + 2) :=
>   Kleber[n, k] =
>     Sum[(-1)^(j - 1)*Binomial[n + 1, j]*Kleber[n, k - j], {j, 1, n + 1}]
>
> it memorizes the values, so next time it is called it will not
> unfold the recursion for values it has calculated before.
>
> for benachmarking purposes, i want to introduce "amnesia", i.e. i want
> the function to forget its previously calculated values,
> but not its definition.
>
> can this be done?
>
> --
> Erich Neuwirth, Computer Supported Didactics Working Group