MathGroup Archive 2009

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

Search the Archive

Re: MatchQ, silly question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg105123] Re: [mg105087] MatchQ, silly question
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Sat, 21 Nov 2009 03:36:48 -0500 (EST)
  • References: <200911201140.GAA03512@smc.vnet.net>

Hi Janos. I assume you are back home ;-)

The problem is that your last three patterns evaluate to something that 3 x^2 does not match, namely

 FullForm[_ (_^_)]

 Power[Blank[],Plus[1,Blank[]]]

To understand this better look a this:

 x*x^x

x^(x + 1)

exactly the same thing will happen if you replace x by Blank[] - you will just get Blank[] to the power Blank[]+1. One way to avoid this sort of problems is to use HoldPattern. So:

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

 {True,True,True,True,True,True}

Andrzej

On 20 Nov 2009, at 20:40, janos wrote:

> 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?
>
> Thank you.
>
> J=E1nos
>



  • Prev by Date: Re: PolarPlot goes upto 1.2 on axis, not 1?
  • Next by Date: Re: Freeze Panes in Grid Expression
  • Previous by thread: MatchQ, silly question
  • Next by thread: Re: MatchQ, silly question