MathGroup Archive 1997

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

Search the Archive

Overloading mathematica built in functions


I want to add a capability to the Sum function.  If I give it a 
single argument that is a 1-D list, I want it to sum the list. For 
example:

In[1]:=
w={1,1,1,3};
Sum[w]
Out[1]:=
5

The function
sum[f_List]:=Sum[f[[i]],{i,1,Length[f]}];
performs this function, However

Unprotect[Sum];
Sum[f_List]:=Sum[f[[i]],{i,1,Length[f]}];
Protect[Sum];

does not work.  Does anyone know why?  I am guessing it has something to 
do with the attribute HoldAll on the built-in function Sum.  Is there a 
way to overload a function so that the attributes are different for 
different argument lists?  

Thanks


  • Prev by Date: Joining matrices
  • Next by Date: Re: Noah's List
  • Previous by thread: Joining matrices
  • Next by thread: Re: Overloading mathematica built in functions