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: [mg46980] Re: How to get non-printing heads?
  • From: Mike <m.HoneychurcNOSPAMh at uq.edu.au>
  • Date: Thu, 18 Mar 2004 01:25:16 -0500 (EST)
  • Organization: University of Queensland
  • References: <c388k0$bnb$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Use Apply.

In[]:={a,b,c}//Head
Out[]=List


In[]:=Plus@@{a,b,c}//Head
Out[]=Plus

In[]:=yourHead@@{a,b,c}//Head
Out[]=YourHead

Cheers

Mike

On 17/3/04 11:11 AM, in article c388k0$bnb$1 at smc.vnet.net, "kj"
<socyl at 987jk.com> wrote:

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


  • Prev by Date: Antw: Binary File Read in Mathematica 5 for Mac OSX
  • Next by Date: Re: How to get non-printing heads?
  • Previous by thread: Re: How to get non-printing heads?
  • Next by thread: Re: How to get non-printing heads?