Persistent Functional Language
<functional language, database> (PFL) A
functional database language developed by Carol Small at Birkbeck College, London, UK and Alexandra Poulovassilis (now at King's College London).
In PFL, functions are defined equationally and bulk data is stored using a special class of functions called selectors. PFL is a lazy language, supports higher-order functions, has a strong
polymorphic type inference system, and allows new user-defined data types and values.
All functions, types and values persist in a
database.
Functions can be written which update all aspects of the database: by adding data to selectors, by defining new equations, and by introducing new data types and values.
PFL is "semi-
referentially transparent", in the sense that whilst updates are referentially opaque and are executed destructively, all evaluation is referentially transparent. Similarly, type checking is "semi-static" in the sense that whilst updates are dynamically type checked at run time, expressions are type checked before they are evaluated and no type errors can occur during their evaluation.
["A Functional Approach to Database Updates (http://web.dcs.bbk.ac.uk/CS/Research/DBPL/papers/INFSYS93.abs.html)", C. Small, Information Systems 18(8), 1993, pp. 581-95].