Defining derivative functions.



I need a way to define a function and its derivative as functions.  That 
is, I want to accomplish what one might expect the following would do:

f(x) := q*x^2 + r;
df(x) := diff( f('x), 'x );

But if you do this the x variable in df(x) is in no way related to the x 
variable in f(x).  If you try this:

df(x) := diff( f(x), x );

It fails as obviously you are differentiating with whatever is passed to 
df(x), not the symbolic variable x anymore.

I even tried using an intermediary:

eq : q*x^2 + r;
f(x) := eq;
df(x) := diff( eq, 'x );

But this also didn't work.

So, how do I do this, that is, create a function and then create its 
derivative (also as a function).


-- 
edA-qa mort-ora-y
Idea Architect
http://disemia.com/