| 1 | initial version |
I'm not completely clear on what your question is, but here is an example of defining a differential operator. It is a function D that takes a function of one variable f and returns the derivative of f with respect to the variable.
sage: def D(f):
....: return f.diff(*f.variables())
....:
sage: f = function('f_1', x)
sage: f.variables()
(x,)
sage: D(f)
D[0](f_1)(x)
sage: D(D(f))
D[0, 0](f_1)(x)
To explain, the function D takes a function as input and returns a function. Functions are "first class values" in Python so you can use them just as you would use a integer or string value, for example. The syntax *f.variables() takes the output of f.variables() which is a tuple (x,) and it unpacks the tuple so that we end up returning f.diff(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.