Services & Resources / Wolfram Forums
MathGroup Archive
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Bug in pattern parsing?

  • To: mathgroup at
  • Subject: [mg62014] Re: [mg61996] Bug in pattern parsing?
  • From: "David Park" <djmp at>
  • Date: Wed, 9 Nov 2005 03:45:28 -0500 (EST)
  • Sender: owner-wri-mathgroup at


Look at the FullForm of each of the rules and you will see the problem.

It is not c_. that is causing the problem, but the X_. that is taken as
ANOTHER optional pattern. Rule1 combines all three factors into a single dot
product. Leave a space before the dot.

rule3 = c_. X_ .Y_ -> X.Y

a.b /. rule3

David Park
djmp at

From: Kristjan Kannike [mailto:kkannike at]
To: mathgroup at


I may have discovered a bug in pattern parsing or applying transformation

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




(the same result obtains for the optional factor actually present as in
const a.b), but




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

  • Prev by Date: Re: simplifying ^ fails, on exact numerical constants in Mathematica 5.0
  • Next by Date: Re: Testing whether code is run in batch mode
  • Previous by thread: Re: Bug in pattern parsing?
  • Next by thread: Re: Bug in pattern parsing?