Re: Bug in Pattern Matching with Condition?
- To: mathgroup at smc.vnet.net
- Subject: [mg97335] Re: Bug in Pattern Matching with Condition?
- From: Albert Retey <awnl at gmx-topmail.de>
- Date: Wed, 11 Mar 2009 04:23:24 -0500 (EST)
- References: <email@example.com> <firstname.lastname@example.org> <email@example.com>
Hi, > can you elaborate a bit. According to the definition of Verbatim , > > Verbatim[Condition][_, _]] should match literally "Condition][_, _]" and > > not Condition[a, b]. you need to be very carefully to where the Verbatim ends. I think everything is in order (this time even the documentation, although it is rather on the short side): Match the Condition-Head verbatim, but treat its arguments _,_ as a pattern: In:= MatchQ[Condition[a,b],Verbatim[Condition][_,_]] Out= True Match the whole expression Condition[_,_] verbatim: In:= MatchQ[Condition[a,b],Verbatim[Condition[_,_]]] Out= False In:= MatchQ[Condition[_,_],Verbatim[Condition[_,_]]] Out= True > Therefore it looks more like another bug to me and > > adds to the mystery of why MatchQ[Condition[a, b], Condition[_, _]] > > evaluates to False. I can see no bug and no mystery here. The problem is that patterns in Mathematica are built as Mathematica expressions just like everything else. If you want to match one of building blocks for pattern-expressions (or expressions containing them) verbatim, you need to wrap them with Verbatim, which seems rather straightforward once one has seen it. It's a little like the escape characters in string patterns that are unavoidable if you use strings to describe the patterns, as has been discussed in another thread. hth, albert