MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Deleting a DownValue, Evaluate[f@@argList]=. does not do it

  • To: mathgroup at smc.vnet.net
  • Subject: [mg20784] Re: [mg20744] Deleting a DownValue, Evaluate[f@@argList]=. does not do it
  • From: "David Park" <djmp at earthlink.net>
  • Date: Thu, 11 Nov 1999 00:22:53 -0500
  • Sender: owner-wri-mathgroup at wolfram.com

Adalbert,

I think you need a little routine to do it.

Attributes[clearf] = {HoldFirst};
clearf[f_[args__]] :=
  Module[{g, expr},
    expr = HoldPattern[x] /. x :> g[args] /. g -> f;
    Evaluate[expr] =.
    ]

Clear[f]
Evaluate[f @@ {1}] = 1;
Evaluate[f @@ {1, 2}] = 2;
Evaluate[f @@ {1, 2, 3}] = 5;

?? f
Global`f
f[1] = 1
f[1, 2] = 2
f[1, 2, 3] = 5

clearf[f[1, 2]]

??f
Global`f
f[1]=1
f[1,2,3]=5

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/

>Hi, MathGroup,
>
>f[1]=1;
>f[2]=2;
>?f
>
>yields
>
>"Global`f"
>f[1] = 1
>f[2] = 2
>
>now get rid of definition for 1
>
>f[1]=.;
>?f
>
>yields
>
>"Global`f"
>f[2] = 2
>
>
>So far, it works as expected. I want to memorize results for combinations of
arguments
>like f[a,b,c]=results and so on. To do this, I write f@@argList. Now I demonstrate
>this on lists with length 1, to make it simple. When making the assignment, it has
to be
>wrapped in Evaluate:
>
>Clear[f];
>Evaluate[f@@{1}]=1;
>Evaluate[f@@{2}]=2;
>?f
>
>yields
>
>"Global`f"
>f[1] = 1
>f[2] = 2
>
>as before. Now I want to get rid of the definition for 1 in the analogous way:
>
>Evaluate[f@@{1}]=.
>
>yields
>
>Unset::usraw: Cannot unset raw object !
>$Failed
>
>How to proceed without searching through DownValues[f] and deleting
>the one meant - very awkward?
>
>kind regards
>
>Dipl.-Math. Adalbert Hanszen
>
>



  • Prev by Date: Re: Re: Re: Combinatorica questions!!!
  • Next by Date: Re: TensorQ
  • Previous by thread: Deleting a DownValue, Evaluate[f@@argList]=. does not do it
  • Next by thread: Re: Deleting a DownValue, Evaluate[f@@argList]=. does not do it