Re: ReplacePart in an If[] construct?
- To: mathgroup at smc.vnet.net
- Subject: [mg67829] Re: [mg67816] ReplacePart in an If[] construct?
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Sun, 9 Jul 2006 04:51:06 -0400 (EDT)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
You threw away the intermediate result since you are not actually changing the input list. Nest the ReplacedParts
testList={{3,an,example,list},{4,another,example,list}};
(If[(ListQ[#1]&&First[#1] == 4),
ReplacePart[
ReplacePart[#1,replaced!,2],
replaced!,3],
#1 (*otherwise*)]&)/@testList
{{3, an, example, list}, {4, replaced!, replaced!, list}}
Bob Hanlon
---- gardyloo <gardyloo at mail.wsu.edu> wrote:
>
> 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
> ==========================================================
>