MathGroup Archive 2002

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

Search the Archive

Re: memoizing function again

  • To: mathgroup at smc.vnet.net
  • Subject: [mg32513] Re: memoizing function again
  • From: Erich Neuwirth <erich.neuwirth at univie.ac.at>
  • Date: Fri, 25 Jan 2002 02:57:41 -0500 (EST)
  • References: <a2lkn5$htb$1@smc.vnet.net> <a2ong2$5uo$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

i wanted to use cases
because i did not know this clever trick
with substituting something empty

and i wante to describe the rules i want to keep.

Jens-Peer Kuska wrote:
> 
> Hi,
> 
> ClearConstantArg[f_Symbol] :=
>   DownValues[f] =
>     DownValues[f] /. (Verbatim[HoldPattern][f[_Integer]] :> _) :>
> Sequence[]
> 
> will do it. For what do wish to use Cases[] ?
> 
> Regards
>   Jens
> 
> Erich Neuwirth wrote:
> >
> > i have the following function
> >
> > f[x_] /; x <= 2 := f[x] = 1
> > f[x_] /; x > 2 := f[x] = f[x - 1] + f[x - 2]
> >
> > it remembers what it already calculated
> > i want to be able to throw away rules with values
> > between calculations
> >
> > In[3]=DownValues[f]
> > produces
> >
> > Out[3]={HoldPattern[f[x_]/;x\[LessEqual]2]\[RuleDelayed](f[x]=1),
> >   HoldPattern[f[x_]/;x>2]\[RuleDelayed](f[x]=f[x-1]+f[x-2])}
> >
> > after f[4]
> >
> > we have
> >
> > In[5]:=
> > DownValues[f]
> >
> > Out[5]=
> > {HoldPattern[f[1]]\[RuleDelayed]1,HoldPattern[f[2]]\[RuleDelayed]1,
> >   HoldPattern[f[3]]\[RuleDelayed]2,HoldPattern[f[4]]\[RuleDelayed]3,
> >   HoldPattern[f[x_]/;x\[LessEqual]2]\[RuleDelayed](f[x]=1),
> >   HoldPattern[f[x_]/;x>2]\[RuleDelayed](f[x]=f[x-1]+f[x-2])}
> >
> > \[RuleDelayed] is ascii for :>, i think
> >
> > so
> >
> > DownValues[f] = Take[DownValues[f], -2]
> >
> > removes all the rules giving calculated values
> > but i would like to throw away the rules following the pattern
> >
> > HoldPattern[f[x_Integer]:>y_Integer
> >
> > but i have not been able wo write an expression using Cases and a
> > pattern
> > which gets rid of the rules i want to get rid of
> >
> > --
> > Erich Neuwirth, Computer Supported Didactics Working Group
> > Visit our SunSITE at http://sunsite.univie.ac.at
> > Phone: +43-1-4277-38624 Fax: +43-1-4277-9386

--
Erich Neuwirth, Computer Supported Didactics Working Group
Visit our SunSITE at http://sunsite.univie.ac.at
Phone: +43-1-4277-38624 Fax: +43-1-4277-9386


  • Prev by Date: RE: Difference between Get[] and Copy-Past operation
  • Next by Date: Re: Change of Variables
  • Previous by thread: RE: memoizing function again
  • Next by thread: RE: RE: memoizing function again