Cannot use "diff" in a function assignment.



Hello,

I'm pretty new to Maxima and I wonder why the following doesn't work:

(%i1) f(x) := x^3 + 2*x^2 + x - 1;
(%o1) ...

(%i2) df(x) := diff( f(x), x )
(%o2) ...

(%i3) df(2);
diff: second argument must be a variable; found 2



I don't understand why this is a problem. It seems like a fairly natural 
thing to want to do - differentiate a function and use the result as a 
new function. Strange, because I seem to be able to use diff(f(x),x) in 
other similar contexts:

(%i4) linsolve( [diff( f(x),x) = 2], [x] );
(%o4) [ x = 1/4]

(%i5) plot2d( diff(f(x),x), [x,-1,1] );
(%o5)


Any ideas?

Cheers,
Daniel.
-- 
I'm not overweight, I'm undertall.