MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

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.
>
>



  • Prev by Date: Re: How to get non-printing heads?
  • Next by Date: Re: Exact real solutions of cubic equations
  • Previous by thread: How to get non-printing heads?
  • Next by thread: Re: How to get non-printing heads?