# Is there any way to define an as-yet-unknown function?

 1 I'd like to know if there's a way of declaring functions in sage that are as-yet unknown. For example, let's say I have a function p = R*T/v - a(T)/v/(v+b)  And I would like to be able to take a derivative like this deriv(p,T)  and be given something back a partial derivative something like R/v - diff(a(T),T)/v/(v+b)  However at present I can't seem to put an abstract function a(T) into my expression or find anything in the documentation that says how this is done. As I recall there was a way to do this with wxMaxima, so maybe I just haven't found the trick in Sage yet. asked Mar 23 '12 jdpipe 13 ● 4

 4 You can define a function using the keyword function. The script below gives the answer you expect. T=var('T') a=function('a',T) R=var('R') v=var('v') b=var('b') p = R*T/v - a(T)/v/(v+b) diff(p,T)  posted Mar 23 '12 Shashank 1730 ● 9 ● 30 ● 62 Great. seems to work fine. The output is a bit weird though, in typeset sage, the diff(a(T),T) is written as D [ 0 ] ( a ) ( T ), not particular intuitive. But it works! Thank you.jdpipe (Mar 23 '12)