MathGroup Archive 2011

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

Search the Archive

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
>


  • Prev by Date: Re: Printing Mathematica Notebooks and WYSIWYG
  • Next by Date: Re: integrate a sum using Mathematica
  • Previous by thread: Re: Variables within With statement
  • Next by thread: Re: Variables within With statement