How to get non-printing heads?
- To: mathgroup at smc.vnet.net
- Subject: [mg46946] How to get non-printing heads?
- From: kj <socyl at 987jk.com>
- Date: Tue, 16 Mar 2004 19:55:13 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
How can I give a Mathematica object a different head? I tried In[1]:= Head[a] ^= Constant; But, as shown below, this doesn't work as desired: In[2]:= MatchQ[a, _Constant] Out[2]= False In[3]:= MatchQ[a, _Symbol] Out[3]= True I even tried In[4]:= a/: MatchQ[a, _Constant] = True; In[5]:= ??a Global`a Head[a] ^= Constant a /: MatchQ[a, _Constant] = True ...but In[6]:= MatchQ[a, _Constant] Out[6]= False Is there any way to give "a" a user-defined head? My immediate goal is to be able to define functions that perform algebraic manipulations on Mathematica expressions according to the types of the objects they contain. I want to leave these objects pretty much undefined, other than specifying their types. E.g.: myDerivative[x_Constant] := 0; myDerivative[a] ==> 0 myDerivative[b] ==> myDerivative[b] (* Derivative doesn't know how to handle Symbol *) TIA, kj -- NOTE: In my address everything before the period is backwards.
- Follow-Ups:
- Re: How to get non-printing heads?
- From: Tomas Garza <tgarza01@prodigy.net.mx>
- Re: How to get non-printing heads?