Persistent Functional Language
Persistent Functional Language
(functional language, database)In PFL, functions are defined equationally and bulk data isstored 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 allowsnew user-defined data types and values. All functions, typesand values persist in a database. Functions can be writtenwhich update all aspects of the database: by adding data toselectors, by defining new equations, and by introducing newdata types and values.
PFL is "semi-referentially transparent", in the sense thatwhilst updates are referentially opaque and are executeddestructively, all evaluation is referentially transparent.Similarly, type checking is "semi-static" in the sense thatwhilst updates are dynamically type checked at run time,expressions are type checked before they are evaluated and notype errors can occur during their evaluation.
["A Functional Approach to Database Updates",C. Small, Information Systems 18(8), 1993, pp. 581-95].