I am trying to define some rules for CenterDot. One thing I don't understand is that if I define
SetAttributes[CenterDot, Flat]
CenterDot[var_] := var
CenterDot[x] will induce infinite recursion. I have tried to use Trace, but could not find why there was a recursion. I am expecting CenterDot[x] being evaluated to x.
f1[x_] := x; SetAttributes[f1, Flat]andSetAttributes[f2, Flat]; f2[x_] := x. Onlyf2is affected. – Szabolcs Oct 27 '20 at 21:43