- To: mathgroup at smc.vnet.net
- Subject: [mg8641] Re: [mg8542] MatchQ
- From: Raya Khanin <raya at mech.ed.ac.uk>
- Date: Fri, 12 Sep 1997 04:10:54 -0400
- Sender: owner-wri-mathgroup at wolfram.com
I thought this conversation about
MatchQ and Complex numbers
might be interesting.
University of Edinburgh
On Mon, 8 Sep 1997, David Withoff wrote:
> > Thanks a lot for your explanation.
> > I've indeed tried an example
> > MatchQ[E^(2*I*b), E^(I*freq_)]
> > which gave me False.
> > Do not you agree that there is no principal
> > difference between
> > E^(2*I*b) and E^(a*I*b) and in both cases
> > MatchQ[E^(2*I*b), E^(I*freq_)] and MatchQ[E^(a*I*b), E^(I*freq)]
> > should give True? Certainly, we do not know anything about
> > a in E^(a*I*b) (it can be Complex number), but we do not anything
> > about b or freq_ in the pattern either.
> > > The match fails because Complex[0, 2] doesn't match Complex[0, 1].
> > Should not it be included in the future versions of MatchQ
> > that
> > Complex[0, 2] does match Complex[0, 1]*2,
> > or for any real c Complex[0, c] does match Complex[0,1]*c
> > Thanks,
> > Raya Khanin
> > University of Edinburgh
> Here is a related example.
> In:= MatchQ[2*3, 2*x_]
> Out= False
> This match fails because 2*3 evaluates to 6, which does not match
> the pattern, even though 6 could be factored into 2 times 3, which
> would match:
> In:= MatchQ[Hold[2*3], Hold[2*x_]]
> Out= True
> The pattern matcher does not factor integers in an effort to find
> a factoring that will match the pattern.
> The same principle applies to an integer that happens to be part
> of a complex number. This match fails:
> In:= MatchQ[Complex[0, 2], Complex[0, 1]*x_]
> Out= False
> because the pattern matcher is not designed to factor Complex[0, 2]
> into 2*Complex[0, 1].
> There is a distinct conflict between the way that complex numbers are
> seen in written mathematics, and the way that complex numbers are stored
> in a computer. In written mathematics, complex numbers are usually
> given as the sum of a real part and the product of an imaginary part
> and some notation for the square root of minus one. Complex numbers
> are almost never stored that way on a computer. In nearly all computer
> programs, complex numbers are stored in a separate data structure
> that does not involve sums or products.
> It has occasionally been suggested that complex numbers be handled
> as a special case in the pattern matcher, to accommodate the way
> that complex numbers are seen in written mathematics, and it is
> possible that such a change will be made in some future version
> of Mathematica. It is worth pointing out, however, that this
> change is not easy to make, and furthermore that there are some
> common examples that would break as a result of such a change.
> Dave Withoff
> Wolfram Research
Prev by Date:
Effect of TagSet
Next by Date:
Previous by thread:
Next by thread: