maxima - rules and patterns



On Mon, Mar 3, 2008 at 10:07 AM, Robert Dodier <robert.dodier at gmail.com> wrote:
> On 3/3/08, Robert Marik <marik at mendelu.cz> wrote:
>  >  trylinear(expr):=(ev(ev(exprlin:expr,declare(derivace,linear)),
>  >  remove(derivace,linear)),remove(derivace,linear),exprlin)
>
>  Hmm. That seems too complicated; does the following work?
>
>  trylinear (expr) := (declare (derivace, linear), expr : ev (expr),
>  remove (derivace, linear), expr);
>
>  Something for the developers to think about -- it would be helpful to
>  have a construct like
>
>  assuming (p(x), q(x)) do (foo, bar, baz);
>
>  where p(x) and q(x) are some predicates such as featurep(x, linear).

I must be missing something here.  Why is derivace sometimes linear
and sometimes not?

              -s