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.