Re: How to get non-printing heads?
- To: mathgroup at smc.vnet.net
- Subject: [mg46983] Re: [mg46946] How to get non-printing heads?
- From: Tomas Garza <tgarza01 at prodigy.net.mx>
- Date: Thu, 18 Mar 2004 01:25:21 -0500 (EST)
- References: <200403170055.TAA11783@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Apply[f, expr] or f @@ expr replaces the head of expr by f. (Viz. Help Browser) Tomas Garza Mexico City ----- Original Message ----- From: "kj" <socyl at 987jk.com> To: mathgroup at smc.vnet.net Subject: [mg46983] [mg46946] How to get non-printing heads? > > 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. > >
- References:
- How to get non-printing heads?
- From: kj <socyl@987jk.com>
- How to get non-printing heads?