Re: Re: Hold and Equal

*To*: mathgroup at smc.vnet.net*Subject*: [mg73771] Re: [mg73747] Re: Hold and Equal*From*: Murray Eisenberg <murray at math.umass.edu>*Date*: Wed, 28 Feb 2007 04:29:07 -0500 (EST)*Organization*: Mathematics & Statistics, Univ. of Mass./Amherst*References*: <erufqm$s7j$1@smc.vnet.net> <200702271048.FAA24024@smc.vnet.net>*Reply-to*: murray at math.umass.edu

Aha! I believe this approach _almost_ allows me to accomplish what I was REALLY trying to accomplish. It certainly works in the example I gave. If I encapsulate this in a function... formEquation[expr_, op_]:= HoldForm[expr=z]/.z\[Rule]op[expr] ... then formEquation[(a+b)^2,Identity] will produce exactly what I want. However, if I try something like the example I was really after (which I didn't mention in my original post, since I gave something simpler), it works in the direct version... HoldForm[Integrate[x^2,x] = z] /. z\[Rule]Integrate[x^2,x] but not with the encapsulating function: formEquation[Integrate[x^2, x], Identity] The latter produces the equation x^3/3 = x^3/2 whereas I want the left-hand side to be the unevaluated integral expression. You can tell I'm struggling with Hold! (One of the "last frontiers" in my Mathematica education.) bghiggins at ucdavis.edu wrote: > Murray, > > Try this > > > HoldForm[(a + b)^2 = z] /. z -> Expand[(a + b)^2] > > > (a + b)^2 = a^2 + 2*a*b + b^2 > > Cheers, > > Brian > > > > On Feb 26, 3:20 am, Murray Eisenberg <mur... at math.umass.edu> 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 Eisenberg mur... at math.umass.edu >> Mathematics & Statistics Dept. >> Lederle Graduate Research Tower phone 413 549-1020 (H) >> University of Massachusetts 413 545-2859 (W) >> 710 North Pleasant Street fax 413 545-1801 >> Amherst, MA 01003-9305 > > > -- Murray Eisenberg murray at math.umass.edu Mathematics & Statistics Dept. Lederle Graduate Research Tower phone 413 549-1020 (H) University of Massachusetts 413 545-2859 (W) 710 North Pleasant Street fax 413 545-1801 Amherst, MA 01003-9305

**References**:**Re: Hold and Equal***From:*bghiggins@ucdavis.edu