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 preinterpreted 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.