[Date Index]
[Thread Index]
[Author Index]
Re: Re: Re: Hold and Equal
*To*: mathgroup at smc.vnet.net
*Subject*: [mg73806] [mg73806] Re: [mg73770] Re: [mg73739] Re: [mg73715] Hold and Equal
*From*: Carl Woll <carlw at wolfram.com>
*Date*: Fri, 2 Mar 2007 06:01:49 -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: Regression**
Next by Date:
**Re: Overlaying a grid on graphics to guide placement**
Previous by thread:
**Re: Re: Hold and Equal**
Next by thread:
**Re: Hold and Equal**
| |