# Directory of Functional Logic Resources

Functional logic languages are a class of multiparadigm language, where the goal is to combine the two most important types of declarative languages: functional languages and logic-based languages. They are hybrid languages, based on (higher-order) predicate calculus extended with characteristics of the lambda-calculus which allows introducing elements such as (strong(er)) typing. The commonly accepted, proper nomenclature for these languages is: Functional Logic. Compared to pure functional languages, functional logic languages are more expressive, via availability of features like function inversion, partial data structures, existential variables, non-deterministic search. Compared to pure logic languages, functional logic languages are more efficient operationally since functions allow more efficient evaluation strategies (lazy evaluation, deterministic reductions) than predicates. Activity in this area has risen sharply since the early 1990s.

## Resources in This Category

• #### ALF

http://www.informatik.uni-kiel.de/~mh/systems/ALF.html
Foundation: Horn clause logic with equality which consists of predicates and Horn clauses for logic programming, and functions and equations for functional programming. A full integration of both programming models, so any functional expression can be used in a goal literal and arbitrary predicates can occur in conditions of equations.

• #### Curry

http://www.informatik.uni-kiel.de/~curry/
Multiparadigm declarative programming language seamlessly merges functional, logic, and concurrent programming paradigms; covers the most important operational principles in the area of integrated functional logic languages.

• #### Escher

http://www.cs.bris.ac.uk/Publications/Papers/1000073.pdf
Declarative, general-purpose language, merges best features of functional and logic languages. Has types and modules, higher-order and meta-programming facilities, declarative input/output. Set of system modules provides many operations on standard data types: integers, lists, characters, strings, sets, programs.

• #### Functional Logic Programming

http://www.informatik.uni-kiel.de/~mh/FLP/
Michael Hanus's pages on amalgamating functional and logic programming.

• #### HAL

http://www.csse.monash.edu.au/~mbanda/hal/
Strongly typed, weakly moded, constraint-logic functional language designed to support construction, extension, and use of new constraint solvers.

• #### LPG

ftp://ftp.imag.fr/pub/labo-LSR/SCOP/LPG/
Generic functional logic language: functions defined by conditional rewrite rules, predicates defined by Horn clauses whose bodies may contain equations, disequations, or classical atomic formulae. Extant version uses extension of SLD-resolution merged with innermost narrowing.

• #### RELFUN

http://www.dfki.uni-kl.de/~vega/relfun.html
Relational-Functional Language: logic-programming language with call-by-value (eager) expressions of non-deterministic, non-ground functions; clauses are Hornish, succeeding with true(s), or footed, returning any value(s), and define operations (relations, functions) allowing (apply-reducible) higher-order syntax with arbitrary terms (constants, structures, variables) as operators.

• #### The Mercury Project

http://mercurylang.org/
Logic/functional programming language which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features.

## Related Categories

Thanks to DMOZ, which built a great web directory for nearly two decades and freely shared it with the web. About us