Re: Bug in pattern parsing?
- To: mathgroup at smc.vnet.net
- Subject: [mg62007] Re: Bug in pattern parsing?
- From: Peter Pein <petsie at dordos.net>
- Date: Wed, 9 Nov 2005 03:45:21 -0500 (EST)
- References: <email@example.com>
- Sender: owner-wri-mathgroup at wolfram.com
Kristjan Kannike schrieb: > Hello, > > I may have discovered a bug in pattern parsing or applying transformation > rules. > > The following two rules should be equivalent: > > rule1 = c_.*X_.Y_ -> X.Y > > with c an optional variable, and > > rule2 = c_.*Dot[X_, Y_] -> X.Y > > Yet applying rule1 on a.b as > > a.b/.rule1 > > gives > > 1.a.b > > (the same result obtains for the optional factor actually present as in > const a.b), but > > a.b/.rule2 > > gives > > a.b > > as it should. > > I think that it has to do with the dot in c_., but curiously I get the > same result when writing the LHS of rule1 as Optional[c]*Y.Z and that > confuses me... > > Any thoughts? > > Kristjan Kannike > <http://www.physic.ut.ee/~kkannike/english/> > Hi Kristjan, the parser can not know what the user has in mind (and vice versa ;-) ). Try a space between X_ and the dot or write c_.(X_).Y_ Peter