Function with attributes Flat and OneIdentity

*To*: mathgroup at christensen.cybernetics.net*Subject*: [mg1078] Function with attributes Flat and OneIdentity*From*: Marc Mazzariol <mmazzari at didec14.epfl.ch>*Date*: Fri, 12 May 1995 18:21:05 -0400*Organization*: Ecole Polytechnique Federale de Lausanne

Hello, I'm a student and i'm trying to use mathematica. I've a little problem : I want to define a function r that has the attributes Flat and OneIdentity so i write : Attributes[r] = {Flat,OneIdentity}; Now if i ask mathematica for : r[r[a]] the result is : r[a] But i want to have the result : a (and not r[a]) If i ask mathematica for : r[a] the result is : r[a] But i also want : a (and not r[a]) So i've tried to write : r[x_] := x Now if i ask mathematica for : r[a] or for : r[r[a]] i've the right result : a But now there is another problem : if i ask mathematica for : r[a,a] mathematica says : $IterationLimit::itlim: Iteration limit of 4096 exceeded. And this because of the attributes of r. So my problem is that i want to create a function like Plus : Plus has the attributes Flat and OneIdentity Plus[2] gives 2 (and not Plus[2] like my function r does) Plus[Plus[2]] gives 2 ( "" "" "" ) Plus[2,2] gives 4 (and not $Itera... like my function r does) How can I do it ???? Thanks for help