Question: Is there a way to have diff(f,...) with f a symbol always return a form in D[...](f)?

Hello,

I'm trying to write and simplify expressions involving partial derivatives of an arbitrary function, say f(x,y).

Specifically, I would like diff(f(t,y),t) to evaluate to D[1](f)(t,y), instead of 
diff(f(t,y),t)

And eval(diff(f(x,y),x),x=t) gives the same result. 

Interestingly, diff(f(2*t,y),t) does evaluate to 2*D[1](f)(2*t,y), as expected.

I could get some results by using a custom differentiation function
 

`diff/f` := proc(x,y,v) 
    if v = x then return D[1](f)(v,y):
    elif v = y then return D[2](f)(x,v):
    else return 0: # is there a fallback I can use without risking infinite recursion?
    fi:
end proc:

and it works for the simple case, but now diff(f(2*t,y),t) does not work.

All this makes me feel that there must be a way to get what I want by default, but I can't figure it out.

Is there? Thank you in advance!

Please Wait...