How do I get define to recurse?



Just tried out using define today:

(%i1) declare(f, multiplicative);
(%o1)                                done
(%i2) declare(f, additive);
(%o2)                                done
(%i3) f(a+b);
(%o3)                             f(b) + f(a)
(%i4) f(a*b);
(%o4)                              f(a) f(b)
(%i5) f(a*b +c);
(%o5)                            f(c) + f(a b)

How do I get maxima to expand out the f(a*b) in %o5 properly?

Joal Heagney