[Date Index]
[Thread Index]
[Author Index]
Re: Re: Help with output form?
*To*: mathgroup at smc.vnet.net
*Subject*: [mg60953] Re: [mg60925] Re: [mg60902] Help with output form?
*From*: Chris Chiasson <chris.chiasson at gmail.com>
*Date*: Wed, 5 Oct 2005 02:27:53 -0400 (EDT)
*References*: <200510030806.EAA00162@smc.vnet.net> <200510040524.BAA17881@smc.vnet.net>
*Reply-to*: Chris Chiasson <chris.chiasson at gmail.com>
*Sender*: owner-wri-mathgroup at wolfram.com
I used to try stuff like this.
If you are careful, you could get away with the following:
input[1]=lhs[1]==rhs[1]
input[1]/.Equal->Set;
However, you must then be careful to not use this trick with lhs[1]
again, because it would be automatically evaluated.
Following off of what Andrzej started, try:
y=10
Rest[HoldForm@@First@Take[DownValues[In],{-2,-2}]]
This second approach could even be extended to show all previous inputs.
On 10/4/05, Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote:
>
> On 3 Oct 2005, at 17:06, aufgang wrote:
>
> > I am struggling to get mathematica to output certain expressions the
> > way I'd like and i'm wondering if anyone could help me.
> >
> > normally, when you input an expression using the Set operator (=),
> > mathematica evaluates the expression, assigns the rhs to the lhs and
> > returns the evaluated rhs (eg. y=Expand[(a+b)^2] -> a^2+2 a b +b^2)
> >
> > what I would like to do is coax mathematica to output the lhs as
> > wel as
> > the evaluated rhs (ie. y=Expand[(a+b)^2] -> y=a^2+2 a b +b^2).
> >
> > I want the rhs to be evaluated like normal, and the value of the
> > lhs to
> > be set to rhs, so so Hold, HoldForm, etc wont work (they keep the lhs
> > but wont evaluate the rhs and the value isnt actually set) and I
> > know I
> > dont want to be using == instead of =. i just want the lhs to appear
> > in the output.
> >
> > the reson I want to do this is because I am calling the Mathematica
> > Kernel from a web app and I want to display this output format to the
> > users.
> >
> > I suspect I could do this somehow by redefining Set or something but i
> > can't seem to figure that out.
> >
> > Thanks for any help.
> >
> >
>
>
> What you are asking for is strictly speaking impossible, since if y
> has been assigned a^2+2 a b +b^2 as its value than whenever y is
> evaluated it will be replaced by a^2+2 a b +b^2. There is no way to
> do this without using some form of Hold. Probably the easiest
> approach is:
>
>
> y = Expand[(a + b)^2]; OwnValues[y][[1]]
>
>
> HoldPattern[y] :> a^2 + 2*b*a + b^2
>
>
> If you do not want to see HoldPattern in your output you can replace
> it by HoldForm:
>
>
> y = Expand[(a + b)^2]; OwnValues[y][[1]] /.
> {HoldPattern -> HoldForm}
>
>
> HoldForm[y] :> a^2 + 2*b*a + b^2
>
> In StandardForm or TraditionalForm you won't see the HoldForm. If you
> still do not like :> you cannot simply replace it by = (Set) because
> then Mathematica will attempt to set HoldForm[y] to the RHS (can't be
> done without unprotecting HoldForm) and in any case the output again
> would be just the RHS. If you really insist on having Set in your
> output you have to wrap everything in HoldForm, e.g.
>
>
> Block[{x}, y = Expand[(a + b)^2]; HoldForm[y -> x] /. {x -> y, Rule -
> > Set}]
>
> HoldForm[y = a^2 + 2*b*a + b^2]
>
>
> Andrzej Kozlowski
>
>
--
Chris Chiasson
http://chrischiasson.com/contact/chris_chiasson
Prev by Date:
** Re: partitioning a string**
Next by Date:
**Re: Visualization site updates**
Previous by thread:
**Re: Help with output form?**
Next by thread:
**Re: Help with output form?**
| |