Next: Data Types
Up: FLIP: Functional-plus-Logic Programming on
Previous: Abstract Machines
LL (LISP light) is a subset of (COMMON) LISP [\protect\citeauthoryearSteele Jr.1984][\protect\citeauthoryearMcCarthy et al.1962]
extended by PROLOG structures.
In addition to purely functional builtins, it contains some extra-functional
builtins for the following reasons:
- Existing (COMMON) LISP programs can be integrated with relational
programs without having to re-implement their non-functional parts like
global variables, re-assignments
via setq, or loops.
- LL functions can be used to augment relational languages by
(new) extra-logicals. Some of these extensions require non-functional
behaviour, e.g. bagof, which can be
implemented via global LL variables (see section 4.3).
- Deterministic tail-recursive
relations and functions can be translated into loops to speed up
In the following, LL's data types, special forms, builtins, and
user-definable functions will be described.