RE: ReplacePart in an If[] construct?
- To: mathgroup at smc.vnet.net
- Subject: [mg67831] RE: [mg67816] ReplacePart in an If[] construct?
- From: "David Park" <djmp at earthlink.net>
- Date: Sun, 9 Jul 2006 04:51:09 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Curtis, Because the result of the first ReplacePart was thrown away and the second ReplacePart started afresh. To replace more than one part use testList = {{3, an, example, list}, {4, another, example, list}}; (If[ (ListQ[#1] && First[#1] == 4), ReplacePart[#1, replaced!, {{2}, {3}}], #1 (*otherwise*) ] & ) /@ testList {{3, an, example, list}, {4, replaced!, replaced!, list}} David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: gardyloo [mailto:gardyloo at mail.wsu.edu] To: mathgroup at smc.vnet.net Hi, all, It's probably that I'm too tired, but I have a question about using ReplacePart in an If[] construct. I've made up a (very) minimal example: In[1]:= testList = {{3, an, example, list}, {4, another, example, list}} Out[1]= {{3, an, example, list}, {4, another, example, list}} In[2]:= (If[ (ListQ[#1] && First[#1] == 4), ReplacePart[#1, replaced!, 3]; ReplacePart[#1, replaced!, 2], #1 (*otherwise*) ] & ) /@ testList Out[2]= {{3, an, example, list}, {4, replaced!, example, list}} Can someone tell me why BOTH the second and third positions in the second element in testList aren't turned to "replaced!" ? I have plenty of other ways of doing this, but this seemed the most straightforward, and I can't wrap my head around it, for some reason. -- ========================================================== Curtis Osterhoudt gardyloo at mail.remove_this.wsu.and_this.edu PGP Key ID: 0x088E6D7A Please avoid sending me Word or PowerPoint attachments See http://www.gnu.org/philosophy/no-word-attachments.html ==========================================================