Type: New Feature
Affects Version/s: 2.0
Fix Version/s: 2.1
UnivariateRealFunction, for example, is a map from R to R. The set of such functions has tons and tons of structure: in addition to being an algebra, equipped with +,-,*, and scaling by constants, it maps the same space into itself, so it is composable, both pre and post.
I'd propose we add:
to the interface, and then implement them in an AbstractUnivariateRealFunction base class. No implementer would need to notice, other than switching to extend this class rather than implement UnivariateRealFunction.
Many people don't need or use this, but... it makes for some powerfully easy code:
which is even nicer when done anonymously passing into a map/collect method (a la