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