Functional Logic Programming: Languages and Systems
There are a many proposals for functional logic languages.
However, I have listed only those languages where I know an easily
accessible implementation (i.e., by the internet).
Additional suggestions are welcome.
ALF is a functional logic language whose operational semantics
is based on innermost narrowing with normalization. Its implementation
is based on an extension of the WAM.
Contact:Michael Hanus
BABEL is a functional logic language whose operational semantics
is based on lazy narrowing and provides some higher-order features.
Contact:Herbert Kuchen,
Juan Jose Moreno Navarro
Ciao is a general-purpose programming language which supports logic,
constraint, functional, higher-order, and object-oriented
programming. Its main design objectives are high expressive power,
extensibility, safety, reliability, and efficient execution.
Contact:The Ciao Team
Curry is a higher-order concurrent functional logic language
whose operational semantics combines an optimal lazy narrowing strategy
with residuation for concurrent computations.
The development of Curry is an international initiative intended to
provide a common platform for research, teaching and application
of integrated functional logic languages.
Contact:Michael Hanus
Life amalgamates functional, logic and object-oriented programming.
The computational domain is based on feature terms.
Functional expressions are evaluated by residuation.
Contact:Hassan Aït-Kaci
LPG is a generic functional logic language. The functions are
defined by conditional rewrite rules and the predicates are defined by
Horn clauses whose bodies may contain equations, disequations or
classical atomic formulae. The current implementation uses an
extension of SLD-resolution combined with innermost narrowing.
Contact:Didier Bert,
Rachid Echahed
Mercury is a logic/functional programming language, which
uses a highly optimized execution algorithm based on mode, type and
determinism declarations. Mercury supports large-scale program development
with modules, separate compilation, and static analysis.
Contact:The Mercury project
NUE-Prolog is a preprocssor for NU-Prolog which translates
function definitions into predicates. Since delay declarations are
added to the translated predicates, the operational behavior
is similar to residuation.
Contact:Lee Naish
Oz is a concurrent constraint programming language providing
higher-order functional programming, constraint logic programming,
and concurrent objects. Functions are supported through a special
syntax for relations. The operational behavior of function
evaluation is similar to residuation.
Contact:Gert Smolka
RELFUN is a logic programming language with eager evaluation
of non-deterministic, non-ground functions. It is implemented
in Common Lisp.
Contact:Harold Boley
TOY is a functional logic programming system
supporting lazy narrowing, higher-order features
(including higher-order logic variables),
disequality constraints (for constructed data terms),
and non-deterministic functions.
Contact:Paco Lopez Fraguas