-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathintroduction.tex
More file actions
41 lines (34 loc) · 1.78 KB
/
Copy pathintroduction.tex
File metadata and controls
41 lines (34 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
\chapter{Introduction}
Curry is a universal programming language aiming at the amalgamation
of the most important declarative programming paradigms,
namely functional programming and logic programming.
Curry combines in a seamless way features from functional programming
(nested expressions, lazy evaluation, higher-order functions),
logic programming (logical variables, partial data structures,
built-in search), and concurrent programming (concurrent evaluation
of constraints with synchronization on logical variables).
Moreover, Curry provides additional features in
comparison to the pure languages (compared to functional programming:
search, computing with partial information; compared to logic
programming: more efficient evaluation due to the deterministic
evaluation of functions).
Moreover, it also amalgamates the most
important operational principles developed in the area of integrated
functional logic languages: ``residuation'' and ``narrowing'' (see
\cite{Hanus94JLP,Hanus07ICLP} for surveys on functional logic programming).
The development of Curry is an international initiative intended to
provide a common platform for the research, teaching\footnote{%
Actually, Curry has been successfully applied to teach functional and
logic programming techniques in a single course without switching
between different programming languages. More details about
this aspect can be found in \cite{Hanus97DPLE}.}
and application of integrated functional logic languages.
This document is intended to provide a tutorial introduction
into the features of Curry and their use in application programming.
It is not a formal definition of Curry which can be found
in \cite{Hanus16Curry}.
%\todo{Update and complete this chapter.}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "main_pdf"
%%% End: