MathGroup Archive 2000

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

Search the Archive

Re: odd behaviour in rule delayed


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
>
>



  • Prev by Date: Re: odd behaviour in rule delayed
  • Next by Date: Re: odd behaviour in rule delayed
  • Previous by thread: Re: odd behaviour in rule delayed
  • Next by thread: Re: odd behaviour in rule delayed