Re: Deleting a DownValue, Evaluate[f@@argList]=. does not do it
- To: mathgroup at smc.vnet.net
- Subject: [mg20765] Re: [mg20744] Deleting a DownValue, Evaluate[f@@argList]=. does not do it
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Thu, 11 Nov 1999 00:22:42 -0500
- Sender: owner-wri-mathgroup at wolfram.com
Here is one possible way : In[1]:= Clear[f]; Evaluate[f @@ {1}] = 1; Evaluate[f @@ {2}] = 2; In[4]:= ?f Global`f f[1] = 1 f[2] = 2 In[5]:= Apply[Unset, ReplacePart[Hold[{1}], f, {1, 0}]] In[6]:= ?f Global`f f[2] = 2 > From: hanssen at zeiss.de > Date: Wed, 10 Nov 1999 00:17:53 -0500 > To: mathgroup at smc.vnet.net > Subject: [mg20765] [mg20744] Deleting a DownValue, Evaluate[f@@argList]=. does not do it > > 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 >