MathGroup Archive 2004

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

Search the Archive

Redefining the minus operator

  • To: mathgroup at
  • Subject: [mg52004] Redefining the minus operator
  • From: Ben Kovitz <bkovitz at>
  • Date: Sun, 7 Nov 2004 01:03:19 -0500 (EST)
  • Sender: owner-wri-mathgroup at

Is there a way in Mathematica to redefine the minus sign to stand for a 
function of your choosing?

For example, I'd like to be able to do something like this:

In[1]:= Subtract[a_, b_] := MINUS[a, b]

In[2]:= FullForm[x - y]
Out[2]:= MINUS[x, y]

In[3]:= 1 - 0
Out[3]:= MINUS[1, 0]

What actually happens is:

In[2]:= FullForm[x - y]
Out[2]:= PLUS[x, Times[-1, y]]

In[3]:= 1 - 0
Out[3]:= 1

Naturally, I'd also like to redefine the plus sign, too.  When Plus[a_, 
b_] is redefined as PLUS[a,b], then x + y indeed evaluates as PLUS[x, 
y].  But Mathematica still simplifies if there are numbers in the 
expression: FullForm[1 + 0] comes out as 1.

Ben Kovitz
Humboldt State University

  • Prev by Date: Re: NotebookWrite[] question
  • Next by Date: Re: Notebook output write to a different file
  • Previous by thread: Re: MathGroup /: Descriptive headings
  • Next by thread: Re: Redefining the minus operator