MathGroup Archive 2011

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

Search the Archive

Pattern replacement

  • To: mathgroup at
  • Subject: [mg122961] Pattern replacement
  • From: "Dr. Wolfgang Hintze" <weh at>
  • Date: Fri, 18 Nov 2011 07:50:14 -0500 (EST)
  • Delivered-to:

My questions are rather elementary.

I wish to replace expressions of the form

-1/2+u by 2u-1
-1/3+u by 3u-1

and so on.

Trying the replacement

(1)    (-1/2+u)/.(-1/q_ + u) -> (q x-1)

does not work, i.e. leaves the original expression unchanged.

Using FullForm[] to reveal the structure gives

(2)    FullForm[Rational[-1, 2] + u]

Now the replacement in explicit form works:

(3)    (-1/2+u)/.(Rational[-1, 2] + u) -> (q u -1)
        Out: -1+q*u

But this is not a nice way to write it.

My questions are

1) Are there better ways to implement the replacement?
2) How do I "undo" FullForm[], i.e. which command produces -1/2+u from 
Rational[-1,2] + u ?
   (I can do it by ToExpression["Rational[-1,2] + u"] but maybe there 
is another way avoiding going to strings).

Thanks in advance

  • Prev by Date: Re: x and y plot finding maximum
  • Next by Date: Re: NIntegrate to compute LegendreP approximations to functions
  • Previous by thread: Re: How to force integers
  • Next by thread: Re: Pattern replacement