In mathematics, adding two functions can be considered an operation in the space of functions. The result is another function.
I can model this by making functions an abstract class and implement all relevant operators for it. An object of that class can be assigned with basic functions (e.g. a constant) and the operators can be used to construct more complex functions. Those objects can be e.g. evaluated or differentiated
What would be a proper name for such an abstract class? Obviously function is a perfectly adequate term in the mathematical sense but ambiguous in programming.
I vaguely remember someone calling it functor but researching that term lead to something different.