Derivative as a function



Hello

is there a way to define a function to be the derivative of an
other function?

(%i43) f(x):=x^2$
(%i44) derf(x):=diff(f(x),x);

(%o44)			   derf(x) := DIFF(f(x), x)
(%i45) derf(0);

Non-variable 2nd argument to DIFF:
0
#0: derf(x=0)
 -- an error.  Quitting.  To debug this try DEBUGMODE(TRUE);

Also is there a way to define a function whose argument is a function?

Thank you

Nikos