We have written an extensible library of function objects, providing an abstract base class for functions as well as numerous specific concrete function classes. The library allows programmers to write extremely flexible applications by programming to a universal function interface. This interface contains among other things all of the familiar operations encountered in the mathematics of functions, e.g. addition subtraction composition, differentiation, approximation, & cetera. In addition to being well defined, these operations are mostly expressed in a natural language of mathematics familiar to everybody. People familiar with symbolic mathematics programs such as Mathematica would see certain feature similarities, however the mail distinction (besides the much smaller scope) is that the product we introduce is a C++ class library and therefore executes at compiled speeds and interoperates easily with a large body of existing C++ code. Besides the features already alluded to above, the class library allows for function shapes to be controlled by external parameters. This makes it immediately useful for such scientific applications as visualization, simulation, and data modelling.