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.

### Subcategories 3

### Related categories 4

### Sites 8

ALF

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

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

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.
[PDF]

Functional Logic Programming

Michael Hanus's pages on amalgamating functional and logic programming.

HAL

Strongly typed, weakly moded, constraint-logic functional language designed to support construction, extension, and use of new constraint solvers.

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.

The Mercury Project

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

RELFUN

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.

Last update:

May 29, 2015 at 14:15:06 UTC
Copyright © 1998-2016 AOL Inc.

Built by CMBuild