MathGroup Archive 2010

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

Search the Archive

Re: ReplaceAll reloaded

  • To: mathgroup at smc.vnet.net
  • Subject: [mg107398] Re: [mg107363] ReplaceAll reloaded
  • From: "David Park" <djmpark at comcast.net>
  • Date: Thu, 11 Feb 2010 07:08:12 -0500 (EST)
  • References: <hkeb04$t7v$1@smc.vnet.net> <4B6AB3AA.1080805@gmail.com> <4B6AB761.5060902@gmail.com> <f831b3d61002040428p72fb9984vaa8e8eb97d3e94e2@mail.gmail.com> <24193850.1265884569345.JavaMail.root@n11>

Because the Or gets evaluated on the lhs of the rule. Use HoldPattern.

x = Or[a, b];

x /. HoldPattern[Or[y__]] -> {y}
{a, b}

But notice:

Or[y__] -> {y}
y__ -> {y}



David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/ 



From: Istv=E1n Zachar [mailto:zac at freemail.hu]

Can you please explain why ReplaceAll does not return a simple list?

In[21]:= ClearAll[x, a, b];
x = Or[a, b];

FullForm@x

Out[23]//FullForm= \!\(\*
TagBox[
StyleBox[
RowBox[{"Or", "[",
RowBox[{"a", ",", "b"}], "]"}],
ShowSpecialCharacters->False,
ShowStringCharacters->True,
NumberMarks->True],
FullForm]\)

In[24]:= x /. Or[y__] :> {y}

Out[24]= {a || b}


Thanks,
Istvan




  • Prev by Date: Re: ReplaceAll reloaded
  • Next by Date: Re: Rotating graphics problem
  • Previous by thread: Re: ReplaceAll reloaded
  • Next by thread: Re: Re: ReplaceAll reloaded