Re: Re: Bug in Pattern Matching with Condition?
- To: mathgroup at smc.vnet.net
- Subject: [mg97327] Re: [mg97279] Re: Bug in Pattern Matching with Condition?
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Wed, 11 Mar 2009 04:21:54 -0500 (EST)
- References: <goqpe7$lrn$1@smc.vnet.net> <goqugt$ngp$1@smc.vnet.net> <200903101032.FAA09839@smc.vnet.net> <1F28FF59-BB99-48DE-8C96-7D7D0393FB5B@mimuw.edu.pl> <49B68279.9000305@metrohm.com>
Well, I can't answer this with any certainly but it seems to me reasonable that _/;True should match anything just as _ does and that _/;False should not match anything. It seems logical that if you agree with that than you get "strange" behaviour as below: MatchQ[a /; False, _ /; False] False MatchQ[a /; False, _ /; True] True It's not really an explanation but it does make sense (to me) so I would say it is a feature. Andrzej On 10 Mar 2009, at 16:08, dh wrote: > Thanks Andrzej. But this still does not explain why "Condition" acts > so strangely. Is it a bug or feature? > Daniel > > Andrzej Kozlowski wrote: >> No, the Varbatim is wrapped around the Head, Condition not around >> the entire expression. You can do it also with HoldPattern: >> MatchQ[a /; b, HoldPattern[Condition][_, _]] >> True >> Once you hold the Head of the pattern expression it no longer has >> its special meaning. You can check that Condition behaves is a very >> special way when used in a pattern, e.g. >> MatchQ[x, Condition[_, True]] >> True >> MatchQ[x, Condition[_, False]] >> False >> Of course if you replace Condition by Verbatim[Condition] or >> HoldPattern[Condition] you will always get False. >> Andrzej Kozlowski >> On 10 Mar 2009, at 11:32, dh wrote: >>> >>> >>> Hi Jens, >>> >>> can you elaborate a bit. According to the definition of Verbatim , >>> >>> Verbatim[Condition][_, _]] should match literally "Condition][_, >>> _]" and >>> >>> not Condition[a, b]. Therefore it looks more like another bug to >>> me and >>> >>> adds to the mystery of why MatchQ[Condition[a, b], Condition[_, _]] >>> >>> evaluates to False. >>> >>> Daniel >>> >>> >>> >>> Jens-Peer Kuska wrote: >>> >>>> Hi, >>> >>>> >>> >>>> but >>> >>>> >>> >>>> MatchQ[Condition[a, b], Verbatim[Condition][_, _]] >>> >>>> >>> >>>> Regards >>> >>>> Jens >>> >>>> >>> >>>> cesar wrote: >>> >>>>> Hi Mathematica group, do you get any idea of >>> >>>>> why the following sentences don't give true? >>> >>>>> >>> >>>>> MatchQ[Condition[a, b], Condition[_,_]] >>> >>>>> MatchQ[Condition[a, b], Condition[__]] >>> >>>>> MatchQ[Condition[a, b], HoldPattern[Condition[__]]] >>> >>>>> >>> >>>>> Is this a bug? >>> >>>>> >>> >>>>> Cheers, >>> >>>>> Cesar >>> >>>>> >>> >>>> >>> >>> >>> > > > -- > > Daniel Huber > Metrohm Ltd. > Oberdorfstr. 68 > CH-9100 Herisau > Tel. +41 71 353 8585, Fax +41 71 353 8907 > E-Mail:<mailto:dh at metrohm.com> > Internet:<http://www.metrohm.com> >
- References:
- Re: Bug in Pattern Matching with Condition?
- From: dh <dh@metrohm.com>
- Re: Bug in Pattern Matching with Condition?