Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

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

Search the Archive

Re: MatchQ, silly question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg105097] Re: MatchQ, silly question
  • From: Albert Retey <awnl at gmx-topmail.de>
  • Date: Sat, 21 Nov 2009 03:31:52 -0500 (EST)
  • References: <he5v9i$3gh$1@smc.vnet.net>

janos schrieb:
> MatchQ[3 x^2, #] & /@ {3 x_^2,  3 x_^_, _ x_^_, _ _^_, _ (_^_), _ *
> (_^_)}
> 
> dives False in the last cases. Why? The FullForm
> 
> Power[Blank[ ],Plus[1,Blank[ ]]]
> 
> contains Plus, why?


just evaluate this:

(_)*(_)^(_)

to see that it gives

_^(_+1)

just as x*x^x would evaluate to x^(x+1), _ or Blank[] is not treated
special in this case. To prevent the evaluation of the patterns, use
HoldPattern:

MatchQ[3 x^2, #] & /@ {3 x_^2, 3 x_^_, _ x_^_, HoldPattern[_ _^_],
  HoldPattern[_ (_^_)], HoldPattern[_*(_^_)]}

works as I think you expect...

hth,

albert


  • Prev by Date: Re: PolarPlot goes upto 1.2 on axis, not 1?
  • Next by Date: Re: Undo in Mathematica
  • Previous by thread: Re: MatchQ, silly question
  • Next by thread: Re: MatchQ, silly question