Re: odd behaviour in rule delayed
- To: mathgroup at smc.vnet.net
- Subject: [mg21506] Re: odd behaviour in rule delayed
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Fri, 14 Jan 2000 02:43:26 -0500 (EST)
- References: <851dn1$43k@smc.vnet.net> <200001070520.AAA08503@smc.vnet.net> <85i124$1qh@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Francisco:
Your example (edited)
list = {1, 0, 1, 0, 0, 1}
{1, 0, 1, 0, 0, 1}
k = 0;
{1, 0, 1, 0, 0, 1} /.1 :> ++k
{10., 0, 10., 0, 0, 10.} :> ++k
This is because {1, 0, 1, 0, 0, 1} /.1 :> ++k is parsed as
({1, 0, 1, 0, 0, 1} /(.1)) :> ++k
So / gives division by 0.1.
Solutions: add space between /. and 1
k = 0;
{1, 0, 1, 0, 0, 1} /. 1 :> ++k
{1, 0, 2, 0, 0, 3}
Or, clearer,
k = 0;
{1, 0, 1, 0, 0, 1} /. (1 :> ++k)
{1, 0, 2, 0, 0, 3}
k = 0;
{1, 0, 1, 0, 0, 1} /. {1 :> ++k}
{1, 0, 2, 0, 0, 3}
Allan
---------------------
Allan Hayes
Mathematica Training and Consulting
Leicester UK
www.haystack.demon.co.uk
hay at haystack.demon.co.uk
Voice: +44 (0)116 271 4198
Fax: +44 (0)870 164 0565
"Francisco Gutierrez" <rpena at impsat.net.co> wrote in message
news:85i124$1qh at smc.vnet.net...
> 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
>
>
- References:
- Re: Using Mathematica to Create Technical Documents
- From: "Tony Duffy" <tduffy@uswest.net>
- Re: Using Mathematica to Create Technical Documents