Re: odd behaviour in rule delayed
- To: mathgroup at smc.vnet.net
- Subject: [mg21541] Re: [mg21499] odd behaviour in rule delayed
- From: "Mark Harder" <harderm at ucs.orst.edu>
- Date: Fri, 14 Jan 2000 02:44:00 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Francisco,
You need to put a space between /. and 1. In Mathematica 3.0.1/WinNT:
list={1,0,1,0,0,1}
k=0;
newlist={1,0,1,0,0,1} /.1:>++k
Out[22]={1,0,1,0,0,1}
Out[23]={10.,0,10.,0,0,10.}\[RuleDelayed]++k
where
list={1,0,1,0,0,1}
k=0;
newlist={1,0,1,0,0,1} /. 1:>++k
Out[24]={1,0,1,0,0,1}
Out[25]={1,0,2,0,0,3}
..because
In[31]:=(list/.1) :>++k
Out[31]={10.,0,10.,0,0,10.}\[RuleDelayed]++k
-mark
-----Original Message-----
From: Francisco Gutierrez <rpena at impsat.net.co>
To: mathgroup at smc.vnet.net
Subject: [mg21541] [mg21499] odd behaviour in rule delayed
>I have M 4.0, window 95.
>I have a list of 0's and 1's, and I want the one's to perform a consecutive
>numeration. For example, transform {1,0,1,0,0,1} into {1,0,2,0,0,3}.
>
>The easiest (and most elegant, I think) way to do it is with a counter and
>rule delayed:
>list={1,0,1,0,0,1}
>kk=0; newlist={1,0,1,0,0,1} /.1:>++k
>
>However, the answer I get from this operation is completely
>odd:{10.,0,10.,0,0,10.}:>++k. I closed my session and re-started my
>computer, but I keep getting the same stuff. I don't understand what is
>happening. By the way, this problem didn't appear in M3.0.
>
>Can somebody help me?
>
>Francisco Gutierrez
>
>