Re: With[{software=Mathematica}, Frustration]
- To: mathgroup at smc.vnet.net
- Subject: [mg24316] Re: [mg24308] With[{software=Mathematica}, Frustration]
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Sun, 9 Jul 2000 04:52:28 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
on 00.7.7 1:11 PM, AES at siegman at stanford.edu wrote: > Pages 359-360 of The Mathematica Book says (admittedly, taken a little > out of context), > > "You can think of With as a generalization of the /. operator. . ." > > and > > " With[{x=x0}, body] works essentially like body /. x->x0 . . . " > > Great, looks neat, let's try it for evaluating expressions without > permanently setting the variables in them: > > In[1]:= c = a b > > Out[1]= a b > > In[2]:= c > > Out[2]= a b > > In[10]:= c /. {a -> 2, b -> 3} > > Out[10]= 6 > > In[3]:= With[{a = 2, b = 3}, c] > > Out[3]= a b > > *Not* what I was hoping for . . . > The point here is that With works like Module: it renames the variables (a way of localizing their meaning). Thus the c outside With and the one inside are quite different. What you should have compared is In[13]:= a*b /. {a -> 2, b -> 3} Out[13]= 6 In[14]:= With[{a = 2, b = 3}, a*b] Out[14]= 6 Unfortunately the way the Mathematica book is written it is not a very good idea to just read fragments of it, unless you are already pretty familiar with the basic principles of the programming language. You'd do better to read some introductory text on Mathematica programming first. -- Andrzej Kozlowski Toyama International University, JAPAN For Mathematica related links and resources try: <http://www.sstreams.com/Mathematica/>