Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: Applying "Replace" to subsets of lists
Replies: 2   Last Post: Dec 20, 2012 3:19 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Simons, F.H.

Posts: 107
Registered: 12/7/04
Re: Applying "Replace" to subsets of lists
Posted: Dec 20, 2012 3:19 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

Since you want to replace the second b, no matter on what level it
occurs, I think you need a counter:

In[3]:= n=0; {{b,2},b} /. {b :> (n=n+1;If[n==2,1,b])}
Out[3]= {{b,2},1}

In[4]:= n = 0; {{b, 2}, 3 + b + b^2} /. {b :> (n = n + 1; If[n == 2, 1,
b])}

Out[4]= {{b, 2}, 4 + b^2}

Regards,

Fred Simons
Eindhoven University of Technology

Op 19-12-2012 10:55, abed.alnaif@gmail.com schreef:
> Hello,
> Say I have the following list, and I'd like to replace the second 'b' with the value 1, leaving the first b untouched:
>
> MagicFunction[{{b, 2}, b}] = {{b, 2}, 1}
>
> How do I do this? I've tried the following:
>
> This doesn't work since it replaces both 'b'
> In: {{b, 2}, b} /. b -> 1
> Out: {{1, 2}, 1}
>
> This doesn't work (I'm not sure why):
> In: {{b, 2}, b} /. {{x_, y_}, f_[b]} -> {{x, y}, 1, f[1]}
> Out: {{b, 2}, b}
>
> This works:
> In: {{b, 2}, b} /. {{x_, y_}, b} -> {{x, y}, 1}
> Out: {{b, 2}, 1}
>
> However, 'b' may appear in different forms, in which case the previous approach fails:
> In: {{b, 2}, b^2} /. {{x_, y_}, b} -> {{x, y}, 1}
> Out: {{b, 2}, b^2}
>
> Using the 'levelspec' argument of 'Replace' also fails since 'b' can appear in different forms:
> In: Replace[{{b, 2}, b^2}, b -> 1, 1]
> Out: {{b, 2}, b^2}
> In: Replace[{{b, 2}, b^2}, b -> 1, 2]
> Out: {{1, 2}, 1}
>
> Thank you,
>
> Abed
>






Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.