Re: How to create a new Form
- To: mathgroup at smc.vnet.net
- Subject: [mg58809] Re: [mg58755] How to create a new Form
- From: stephen layland <layland at wolfram.com>
- Date: Tue, 19 Jul 2005 04:10:21 -0400 (EDT)
- References: <200507170704.DAA02672@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
and thus spake Nilton [2005.07.17 @ 02:16]: > I would like to create a new Form that is a "wrapper" (like Short, > CForm, ...), which affects printing, but not evaluation. For example: > > In[1]:= 10 + f[5] // BinaryForm > > Out[1]//BinaryForm = > 1010 + f[101] > > In[2]:= % > Out[2]= 10 + f[5] > > I know there is BaseForm, but this is just an example. In fact I would > like to do something more complicated, but must know how to do > something like this first. > > Can anyone help? Try something like this: In[1]:= Format[BinaryForm[x_]] := x /. n_?NumberQ :> FromDigits[IntegerDigits[n, 2]] Unprotect[$OutputForms]; AppendTo[$OutputForms,BinaryForm]; Protect[$OutputForms]; In[4]:= 1234+f[234+x]//BinaryForm Out[4]//BinaryForm= 10011010010+f[11101010+x] In[5]:= % Out[5]= 1234+f[234+x] (and I'd recommend avoiding looking at the Combinatorica code. ;) ) Happy Hacking! > Thanks, > -- Nilton -- /*------------------------------*\ | stephen layland | | Documentation Programmer | | http://members.wri.com/layland | \*------------------------------*/
- References:
- How to create a new Form
- From: "Nilton" <nilton.volpato@ig.com.br>
- How to create a new Form