FDL extends the functional data model to computational completeness while also
supporting the persistence of any function, whether extensionally or
intentionally defined.
FDL improves on previous implementations of a functional data model
as follows :
-
The language is formally based on the lambda calculus and so any recursive
function can be defined. Furthermore, all functions are stored in the database.
-
All functions, whether used for data modelling purposes or for computation,
are treated uniformly with respect to their definition, evaluation, update
and persistence.
-
The data types of the language include arbitrarily nested lists, sums and
products and all of them are persistent.
-
Functions can be partly extensionally defined, partly intentionally
defined and so default knowledge can be represented.
-
All procedural data is stored in a pre-interpreted form ready for
subsequent evaluation by a lambda calculus evaluator.
We discuss these and other features of FDL in Sections 3 and 4 of the paper.
In Section 2 we give a brief introduction to functional programming,
which forms the theoretical basis of FDL.