Re: Re: Help with output form?
- To: mathgroup at smc.vnet.net
- Subject: [mg61000] Re: [mg60986] Re: Help with output form?
- From: Andrzej Kozlowski <andrzej at yhc.att.ne.jp>
- Date: Fri, 7 Oct 2005 03:37:44 -0400 (EDT)
- References: <200510060808.EAA08533@smc.vnet.net> <01341327-A0FD-4ACA-9612-13774B37153D@yhc.att.ne.jp>
- Reply-to: Andrzej Kozlowski <andrzej at akikoz.net>
- Sender: owner-wri-mathgroup at wolfram.com
On 6 Oct 2005, at 21:07, Andrzej Kozlowski wrote:
>
> On 6 Oct 2005, at 17:08, ted.ersek at tqci.net wrote:
>
>
>> A user wanted to make it so that evaluating
>> (lhs=rhs) would make the assignment and show
>> lhs=rhs in the output instead of just rhs.
>> The following more or less does this.
>>
>>
>> In[1]:=
>> Unprotect[Set];
>> $ModifySet=True;
>>
>> (lhs_=rhs_)/;$ModifySet:=
>> Block[{$ModifySet}, lhs=rhs; HoldForm[lhs=rhs] ]
>>
>> Protect[Set];
>>
>>
>> In[5]:=
>> y=Expand[(a+b)^2]
>>
>> Out[5]=
>> y = a^2 + 2 a b + b^2
>>
>>
>> But then you will have trouble if you use the above output cell to
>> make a
>> new input expression. That can be fixed if you use a package I have
>> posted at
>> http://library.wolfram.com/infocenter/MathSource/705/
>>
>> Then change HoldForm above to HoldTemporary.
>>
>> ----------
>> Regards,
>> Ted Ersek
>>
>>
>>
>>
>>
>
>
> This is admittedly clever and elegant but making any changes to
> basic functions like Set can have unforeseen side effects. Of
> course here we are protected by the flag $ModifySet, which has to
> be set to True before modification will work but one might set it
> to True and forget about it. We may then run into trouble when we
> try to use "dynamic programming", as in for example:
>
> x[0] = 0; x[1] = 1; x[n_] := x[n] = x[n - 1] + x[n - 2];
>
> Now try evaluating x[100] with $ModifySet set to False and set to
> True.
>
> Andrzej Kozlowski
>
Perhaps I should add that this is more serious than it may seem,
since the fucntion x could actually be defined in some package so
that the user doesn't know that x was defined via dynamic
programming. This makes me feel that this approach is in fact unsafe.
Andrzej Kozlowski
- References:
- Re: Help with output form?
- From: ted.ersek@tqci.net
- Re: Help with output form?