Constant functions¶
-
class
sage.misc.constant_function.
ConstantFunction
¶ Bases:
sage.structure.sage_object.SageObject
A class for function objects implementing constant functions.
EXAMPLES:
sage: f = ConstantFunction(3) sage: f The constant function (...) -> 3 sage: f() 3 sage: f(5) 3
Such a function could be implemented as a lambda expression, but this is not (currently) picklable:
sage: g = lambda x: 3 sage: g == loads(dumps(g)) Traceback (most recent call last): ... PicklingError: Can't pickle <... 'function'>: attribute lookup __builtin__.function failed sage: f == loads(dumps(f)) True
Also, in the long run, the information that this function is constant could be used by some algorithms.
Todo
- Should constant functions have unique representation?
- Should the number of arguments be specified in the input?
- Should this go into
sage.categories.maps
? Then what should be the parent (e.g. forlambda x: True
)?