MathGroup Archive 1998

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

Search the Archive

Re: Previous variable affects "/."



You need to do a delayed replacement using :> (analogous to a delayed
assignment) as in the following:

In[1]:= a = {{1, 2}, {3, 4}, {5, 6}, {7, 8}};

In[2]:=a /. {x_,y_} -> {x}

Out[2]= {{1},{3},{5},{7}}

In[3]:= x = 7;

In[4]:= a /. {x_, y_} -> {x}

Out[4]= {{7},{7},{7},{7}}

In[5]:= a /. {x_, y_} :> {x}

Out[5]= {{1},{3},{5},{7}}

Cheers,

David


In article <6dg8bd$2tr@smc.vnet.net>, Vilis Nams <vnams@nsac.ns.ca>
wrote:

> I am using "/." to change expressions, as follows:
> 
> In[1]:= a = {{1, 2}, {3, 4}, {5, 6}, {7, 8}}; In[2]:= a /. {x_,
> y_} -> {x}
> Out[2]:= {{1}, {3}, {5}, {7}}
> The results are expected.
> 
> But, if I now define x to be something already, e.g. In[3]:= x = 7;
> 
> Then, when I do the Replace, Mathematica uses my previously-defined x,
as follows=
> :
> 
> In[4]:= a /. {x_, y_} -> {x}
> Out[4]:= {{7}, {7}, {7}, {7}}
> 
> I tried to even wrap it inside of a function, to have x as a local
> variab= le, as
> in:
> In[5]:= f[v_] := Module[{x, y}, v /. {x_, y_} -> {x}];
> 
> But, it still used the x defined previously: In[6]:= f[a]
> Out[6]:= {{7}, {7}, {7}, {7}}
> 
> This is no problem when I'm just creating and using variables in one
> se= ssion,
> because I can remember which variables I created. But, I have such
> Replac= e
> statements sprinkled inside of functions that I defined. I cannot
> remembe= r all
> the symbols I used in those definitions. Even worse, I may not get an
> err= or
> message - I just may get the wrong result without knowing it.
> 
> How can I use the Replace and x_, and make sure that previously-defined
> variables don't influence the results?
> 
> 
> --------------------
> Vilis O. Nams
> Dept of Biology, NSAC
> Box 550, Truro, NS,  Canada
> vnams @ nsac.ns.ca
> -------------------

-- 
David Reiss
dreissNOSPAM@nospam.earthlink.net
http://home.earthlink.net/~dreiss
To send personal email, remove the words  "nospam" and "NOSPAM" from the
email address



  • Prev by Date: Re: Copying from Excel 97
  • Next by Date: Re: are nested patterns impossible?
  • Prev by thread: Re: Previous variable affects "/."
  • Next by thread: Re: Previous variable affects "/."