Re: BracketingBar for output
- To: mathgroup at smc.vnet.net
- Subject: [mg15808] Re: [mg15717] BracketingBar for output
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Sun, 7 Feb 1999 02:04:23 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
On Fri, Feb 5, 1999, Peter Breitfeld <phbrf at t-online.de> wrote:
>In my "personal package" I have the function Betrag[x_]:=Sqrt[x.x]
>
>Now I want that in cases where this function can't be evaluated, the
>output in StandardForm is displayes as |x|. (left and right
>BracketingBar, these symbols you get when entering `ESC l| ESC' and
>`ESC r| ESC'.
>
>To make it more clear (I hope :-)) I want the following behavior
>
>In[1] Betrag[foo]
>Out[1] |foo|
>
>but
>
>In[1] Betrag[{2,2,1}]
>Out[1] 3
>
>Is this possible?
>
>TIA
>
>es gruesst
> Peter
>--
>=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=
> Peter Breitfeld, Saulgau, Germany (PGP public key: 08548045)
It depends what you mean by "can't be evaluated". For example, if you
use the definition:
Clear[Betrag]
Betrag[x_List]:=Sqrt[x.x];
Betrag[x_]:=?[LeftBracketingBar]x?[RightBracketingBar]
You get your behaviour:
In[56]:=
Betrag[{2,2,1}]
Out[56]=
3
In[57]:=
Betrag[foo]
Out[57]=
?[LeftBracketingBar]foo?[RightBracketingBar]
However,
In[58]:=
Betrag[{a,b,c}]
Out[58]=
?!?(? at ?(a?^2 + b?^2 + c?^2?)?)
Is that good or bad? If you don't like it you can try:
In[59]:=
Clear[Betrag]
Betrag[x_]/;MatrixQ[{x,x},NumberQ]:=Sqrt[x.x];
Betrag[x_]:=?[LeftBracketingBar]x?[RightBracketingBar]
Now:
In[61]:=
Betrag[{2,2,1}]
Out[61]=
3
In[62]:=
Betrag[foo]
Out[62]=
?[LeftBracketingBar]foo?[RightBracketingBar] In[63]:=
Betrag[{a,b,c}]
Out[63]=
?[LeftBracketingBar]{a,b,c}?[RightBracketingBar]
Andrzej Kozlowski
Toyama International University
JAPAN
http://sigma.tuins.ac.jp/
http://eri2.tuins.ac.jp/