Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2002
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2002

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

Search the Archive

RE: ReplaceAll doesn't replace

  • To: mathgroup at smc.vnet.net
  • Subject: [mg32591] RE: [mg32550] ReplaceAll doesn't replace
  • From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
  • Date: Wed, 30 Jan 2002 03:19:14 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

 -----Original Message-----
> From: Ken Morgan [mailto:kmorga51 at calvin.edu]
To: mathgroup at smc.vnet.net
> Sent: Saturday, January 26, 2002 10:08 AM
> Subject: [mg32591] [mg32550] ReplaceAll doesn't replace
> 
> 
> I understand how the following will replace x with the list
> 
> #^2 & /@ (x /. x -> {a, b, c})
> 
> to generate
> 
> {a^2, b^2, c^2}
> 
> But, why isn't x replaced at the beginning of the evaluation in the
> following
> 
> (#^2 & /@ x) /. x -> {a, b, c}
> 
> since it generates
> 
> {a, b, c}
> 
> What I really want to know is: What is it about the Function 
> function that
> doesn't allow ReplaceAll to "replace all" at the beginning of 
> an evaluation?
> 
> Thanks,
> Ken Morgan
> kmorga51 at calvin.edu
> 
> 
Ken,

the order of evaluation is different from what you suppose.
ReplaceAll evaluates its argments, so

In[8]:= (#^2 & /@ x)
Out[8]= x

Nothing is Mapped on an atom, so x is reproduced. Next

In[9]:= x /. x -> {a, b, c}
Out[9]= {a, b, c}

but:

In[10]:= Unevaluated[(#^2 & /@ x)] /. x -> {a, b, c}
Out[10]= {a^2, b^2, c^2}

--
Hartmut Wolf



  • Prev by Date: Gross Bug in Simplify
  • Next by Date: RE: Headless set of elements?
  • Previous by thread: Re: ReplaceAll doesn't replace
  • Next by thread: Integrating extremely elliptic orbits displaced from the origin.