Persistent Functional Languagelazy 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].
Last updated: 1995-04-27