|(functional language, database)||Persistent Functional Language - (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", C. Small, Information Systems 18(8), 1993, pp. 581-95].