|   | 1 |  initial version  | 
There is no need to define such a function.
No need for var('n i') either, by the way.
Once you have defined the function g by
sage: g(x) = sin(x) + tan(x)
you can check that g is a function, and g(x) is the corresponding expression:
sage: g
x |--> sin(x) + tan(x)
sage: g(x)
sin(x) + tan(x)
and then you can differentiate the function or the expression three times.
The only thing is that the variable with respect to which to differentiate must be specified.
sage: g.diff(x, 3)
x |--> 4*(tan(x)^2 + 1)*tan(x)^2 + 2*(tan(x)^2 + 1)^2 - cos(x)
sage: g(x).diff(x, 3)
4*(tan(x)^2 + 1)*tan(x)^2 + 2*(tan(x)^2 + 1)^2 - cos(x)
|   | 2 |  No.2 Revision  | 
There is no need to define such a function.
No need for var('n i') either, by the way.
Once you have defined the function g by
sage: g(x) = sin(x) + tan(x)
you can check that g is a function, and g(x) is the corresponding expression:
sage: g
x |--> sin(x) + tan(x)
sage: g(x)
sin(x) + tan(x)
and then you can differentiate the function or the expression three times.
The only thing is that the variable with respect to which to differentiate must be specified.
sage: g.diff(x, 3)
x |--> 4*(tan(x)^2 + 1)*tan(x)^2 + 2*(tan(x)^2 + 1)^2 - cos(x)
sage: g(x).diff(x, 3)
4*(tan(x)^2 + 1)*tan(x)^2 + 2*(tan(x)^2 + 1)^2 - cos(x)
If however you want to understand the error you were getting, here is a hint.
When you do g = g.diff()  inside a function, it wants to use a local variable g
inside the function.
If you want to use a globally defined variable, specify it with global g as follows:
sage: def maderive(n):
....:     global g
....:     for i in range(n):
....:          g=g.diff()
....:     return g
....: 
sage: maderive(3)
x |--> 4*(tan(x)^2 + 1)*tan(x)^2 + 2*(tan(x)^2 + 1)^2 - cos(x)
Note that this modifies the function g. After running the above, you get:
sage: g
x |--> 4*(tan(x)^2 + 1)*tan(x)^2 + 2*(tan(x)^2 + 1)^2 - cos(x)
 Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.
 
                
                Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.