|
[Date Index]
[Thread Index]
[Author Index]
RE: Matching Or expressions
- To: mathgroup at smc.vnet.net
- Subject: [mg72275] RE: [mg72250] Matching Or expressions
- From: "David Park" <djmp at earthlink.net>
- Date: Sun, 17 Dec 2006 06:20:37 -0500 (EST)
Johan,
The short answer is that you want to use HoldPattern[Or[_]].
MatchQ[And[p, q], HoldPattern[Or[_]]]
False
The reason is that MatchQ evaluates its arguments.
Or[x]
x and
Or[_]
_ which is a pattern that will match anything!
David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/
From: Johan Grönqvist [mailto:johan.gronqvist at gmail.com]
The context of my problem is explained below.
I wish to distinguish expressions of the form And[p,q] from those of the
form Or[p,q], but the only thing I find is
MatchQ[myExpr, Or[_]]
and to my surprise I see that MatchQ[And[p,q],Or[_]] is True. Thus I can
not use this to match only the Or-expressions.
Thanks
Johan
The context is as follows:
I wish to find the number of solutions to a diophantine equation with a
finite number of solutions.
I do the following
sols = Reduce[eqns, vars, Integers]
and this gives me an expression that normally looks like Or[_,_,_] if
there are several solutions, or something else if there are not.
Now I wish to find the number of solutions using
Which[MatchQ[sols, Or[_]], Length[sols], DoOtherStuff]
The problem is that the MatchQ[ expr, Or[_] ] also matches e.g. (x==2 &&
y==4), which is only one solution.
Prev by Date:
Re: Complex Numbers to list of points
Next by Date:
Re: Matching Or expressions
Previous by thread:
Re: Matching Or expressions
Next by thread:
Re: Matching Or expressions
|