Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

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

Search the Archive

Re: pattern matching against the Dt function?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg85276] Re: pattern matching against the Dt function?
  • From: Grischika at mail.ru
  • Date: Tue, 5 Feb 2008 06:01:38 -0500 (EST)
  • References: <fo6h46$r20$1@smc.vnet.net>

On 4 =C6=C5=D7, 10:07, "Adam M." <ad... at san.rr.com> wrote:
> Hello,
>
> I'm having trouble matching the Dt function with a pattern, even though
> it works for all other functions I've tried.
>
> (*It doesn't match Dt[b] here.*)
> In[101]:= {f[a], Dt[b]} /. Dt[n_]->n
> Out[101]= {f[a], Dt[b]}
>......
>.....
>
> I've read every section on pattern matching in the documentation center,
> and I'm at a complete loss to explain why I can't seem to match the Dt
> function with the Dt[n_] pattern when I can match these other functions.
> I know I can use the _Dt pattern to match it, but then I don't get
> control over matching the arguments...
>
> Thank you.
>
> Very curious,
> -- Adam M.

Instead of using Hold on lefthand side of Replace you should use
HoldPattern on right as follows:

> In[101]:= {f[a], Dt[b]} /. HoldPattern[Dt[n_]]->n
> Out[101]= {f[a], Dt[b]}

To understand were the problem is try to evaluate Dt[n_].
Or next example:
In[]:= HoldForm[Expand[(a+b)^3]]/.{Expand[x_]->x}
Out[]:=Expand[(a+b)^3]
and
In[]:= HoldForm[Expand[(a+b)^3]]/.{HoldPattern[Expand[x_]]->x}
Out[]:=(a+b)^3




  • Prev by Date: silly problem
  • Next by Date: Re: pattern matching against the Dt function?
  • Previous by thread: Re: pattern matching against the Dt function?
  • Next by thread: Re: pattern matching against the Dt function?