A tutorial by Michael Hanus to be held at the International Logic Programming Symposium (ILPS'97)
Since more than ten years, the integration of the functional and logic
programming paradigms have been studied. This research lead to the development
of various programming languages (ALF, Babel, K-Leaf, Le Fun, Life, LPG,
SLOG,...). Due to the diversity of these languages and the recent improvements
in this area, a number of people had the feeling that the time is ripe
to develop a multi-paradigm language which can serve as a common basis
for further developments. This language, called Curry, is developed as
an international initiative (including researchers from functional and
logic programming), supports logic, functional and concurrent programming
styles and combines the best features of the different paradigms (e.g.,
logic variables, partial data structures, constraints, and search from
logic programming, lazy evaluation, higher-order functions, types, and
declarative I/O from functional programming).
This tutorial mainly provides a survey on the integration of functional
and logic programming and gives a short sketch of the features of the multi-paradigm
declarative language Curry. This could also lead to a new perspective for
logic programming, since most of the impure features of Prolog could be
replaced by declarative elements in a multi-paradigm language.
Available: Slides (Postscript)