MathGroup Archive 2007

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

Search the Archive

Re: Re: Re: Hold and Equal

  • To: mathgroup at smc.vnet.net
  • Subject: [mg73806] Re: [mg73770] Re: [mg73739] Re: [mg73715] Hold and Equal
  • From: Carl Woll <carlw at wolfram.com>
  • Date: Thu, 1 Mar 2007 06:08:12 -0500 (EST)
  • References: <200702261112.GAA27677@smc.vnet.net> <200702271044.FAA23846@smc.vnet.net> <200702280928.EAA24217@smc.vnet.net>

Murray Eisenberg wrote:

>OK, that does what I explicitly asked for, but what I asked for was an 
>oversimplified case of what I actually wanted...
>
>The trouble with my example is that the left-hand side of the 
>mathematical equality is an expression that Mathematica does not 
>automatically "evaluate".  But suppose the left-hand side were, say, 
>Integrate[x^2,x]?  Then when function step is applied to that, the 
>integral is actually evaluated on both sides of the equality produced.
>
>Moreover, if I try, say,
>
>   step[Hold[Integrate[x^2,x]]]
>
>then Hold appears on both sides of the resulting equality.
>
>What I'm after is something that will allow me to show an equation of 
>the form, say,
>
>     integral = evaluatedIntegral
>
>where the left-hand side uses the integral sign and a "dx" (as an 
>unevaluated expression), the right-hand side evaluates that integral, 
>and the entire expression appears in traditional mathematical form.
>
>  
>
Make step HoldFirst (or HoldAll)

SetAttributes[step, HoldFirst]

Then,

step[Integrate[x^2,x]]

does what you want, although the explicit inclusion of Expand in the 
definition of step isn't necessary.

Carl Woll
Wolfram Research

>Carl Woll wrote:
>  
>
>>Murray Eisenberg wrote:
>>
>>    
>>
>>>How can I produce in an Output cell (under program control) an 
>>>expression like the following,
>>>
>>>  (a+b)^2 = a^2+ 2 a b + b^2
>>>
>>>where instead of the usual Equal (==) I get a Set (=), as in traditional 
>>>math notation?  I want to input the unexpanded (a+b)^2 and have the 
>>>expansion done automatically.
>>>
>>>Of course, I can try something like the following:
>>>
>>>  (a+b)^2 == Expand[(a+b)^2])
>>>
>>>So how do I convert the == to =?  Of course
>>>
>>>  ((a + b)^2 == Expand[(a + b)^2]) /. Equal -> Set
>>>
>>>gives a Set::write error.  And
>>>
>>>  (Hold[(a + b)^2 == Expand[(a + b)^2]]) /. Equal -> Set
>>>
>>>doesn't actually evaluate the Expand part and leaves the "Hold" wrapper.
>>> 
>>>
>>>      
>>>
>>Murray,
>>
>>How about using HoldForm?
>>
>>step[x_] := HoldForm[x = #] &[Expand[x]]
>>
>>step[(a+b)^2]
>>(a+b)^2=a^2+2 b a+b^2
>>
>>Carl Woll
>>Wolfram Research
>>
>>    
>>
>
>  
>



  • Prev by Date: Re: Numerical integration
  • Next by Date: Re: Overlaying a grid on graphics to guide placement
  • Previous by thread: Re: Re: Hold and Equal
  • Next by thread: Re: Re: Re: Hold and Equal