Re: Variables within With statement
- To: mathgroup at smc.vnet.net
- Subject: [mg123700] Re: Variables within With statement
- From: Tomas Garza <tgarza10 at msn.com>
- Date: Fri, 16 Dec 2011 05:44:36 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201112150951.EAA22803@smc.vnet.net>
There is no way to obtain what you want. The definition of With specifies that in expr occurrences of the symbols x, y, ... should be replaced by Subscript[x, 0], Subscript[y, 0], .... and makes no reference to the order in which they are written. That is to say, the replacement is simultaneous. Try writing the variables in reverse order: In[1]:= With[{x = a, b = a + 5}, a + b] Out[1]= 5 + 2 a In[3]:= With[{b = a + 5, x = a}, a + b] Out[3]= 5 + 2 a In both cases their FullForm gives Plus[5,Times[2,a]] -Tomas > Date: Thu, 15 Dec 2011 04:51:48 -0500 > From: hpd1 at nyu.edu > Subject: Variables within With statement > To: mathgroup at smc.vnet.net > > Is there any easy way to have one variable within a With > statement take its value from a prior variable in the same With > statement? For example, if I evaluate With[{a = 5, b = 10 a}, a + b], I > get 5 + 10a, and what I want is 55. I can get there like this: With[{a > = 5}, With[{b = 10 a}, a + b]] -- which does produce 55 -- but it would > be nicer if I could use a single With statement and get b, within it, to > take its value from a. > > Thanks. > > Harvey >
- References:
- Variables within With statement
- From: "Harvey P. Dale" <hpd1@nyu.edu>
- Variables within With statement