Re: Error in Mathematica?

• To: mathgroup at yoda.physics.unc.edu
• Subject: Re: Error in Mathematica?
• From: jacobson at cello.hpl.hp.com
• Date: Mon, 08 Nov 93 08:22:53 -0800

```J Harris observes that

In[1]:= x=b
Out[1]= b
In[2]:= x^2
Out[2]= b^2  (* as I would expect)
In[3]:= x^2/.x->a
Out[3]= a^2
In[4]:= x=2
Out[4]= 2
In[5]:= x^2/.x->7
Out[5]= 4

What is happening is that the left side of the Rule operator (->)
gets evaluated, so by the time Rule gets to work on it here is what it
is seeing

In[1]:= x=b
Out[1]= b
In[2]:= x^2
Out[2]= b^2  (* as I would expect)
In[3]:= x^2/.x->a			b^2 /. b->a
Out[3]= a^2
In[4]:= x=2
Out[4]= 2
In[5]:= x^2/.x->7  			4 /. 2->7
Out[5]= 4

In item 3, the b gets replaced by a.  But in item 5, 2 does not match
4, so no replacement is done.

You can get the behavior you expect in item 3 by using Literal, as
follows

In[1]:= x=b

Out[1]= b

In[2]:= x^2 /. Literal[x]->a

2
Out[2]= b

-- David Jacobson

```

• Prev by Date: Re: Using control codes in a remote MMA session
• Next by Date: No Error in Mathematica!
• Previous by thread: Re: Using control codes in a remote MMA session
• Next by thread: Re: Error in Mathematica?