User Portlet User Portlet

Discussions
If you can accept needing to use your own function then In[1]:= mydist[expr_] := Distribute[expr] //. Dot[Times[a_, A_], Times[c_, C_]] -> a*c*A.C; mydist[(a*A + b*B).(c*C + d*D)] Out[2]= a c A.C + a d A.D + b c B.C + b d B.D ...