-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.tex
More file actions
123 lines (98 loc) · 3.2 KB
/
main.tex
File metadata and controls
123 lines (98 loc) · 3.2 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
% ------------------------------------------------------------------
% produce an index:
\makeindex
\begin{document}
\sloppy
\pagenumbering{roman}
\begin{center}
\fbox{
\begin{minipage}[t]{\figurewidth}
\begin{center}\vspace{20ex}
{\Huge\bf Curry}\\
\vspace{4ex}
{\LARGE\bf A Tutorial Introduction}\\
\vspace{5ex}
{\large Draft of \today}\\
\vspace{8ex}
\Large
\href{https://www.cs.pdx.edu/~antoy/}{Sergio Antoy}\\
\vspace{1ex}
\large
\href{https://www.pdx.edu}{Portland State University}, U.S.A.\\
Web: \url{https://www.cs.pdx.edu/~antoy/}\\
\vspace{3ex}
\Large
\href{https://www.michaelhanus.de/}{Michael Hanus}\\
\vspace{1ex}
\large
\href{https://www.uni-kiel.de}{Christian-Albrechts-Universit\"at Kiel}, Germany\\
Web: \url{https://www.michaelhanus.de/}\\
\vspace{20ex}
\end{center}
\end{minipage}}
\end{center}
\setcounter{page}{0}
\pdfbookmark[1]{Contents}{Contents}
\tableofcontents
\newpage
\pagenumbering{arabic}
\chapter*{Preface}
\addcontentsline{toc}{chapter}{Preface}
This book is about programming in \curryref,
a general-purpose declarative programming language
that integrates functional with logic programming.
Curry seamlessly combines the key features of
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).
This book is best used as an introduction to Curry.
Curry is a rigorously defined programming language.
The \href{\curryurl/documentation/report}
{``Report''} is a still evolving, but fairly stable,
document that precisely defines the language,
in particular both its syntax and operational semantics.
However, the report is not best suited to the beginner,
rather it may be consulted in conjunction with this
tutorial for the sake of a completeness that is not sought here.
There are several
\href{\curryurl/implementations/overview}{implementations of Curry}.
%The most usable at the time of the writing (July~2014) is \pakcs.
The examples and exercises in this book have been developed
and executed using \pakcs.
PAKCS is also accessible (in a restricted form) on-line via a
\href{https://smap.curry-lang.org/}{web-based system}.
In this document, you find for many programs a ``Browse'' link
which directly loads the program into this web-based system so that
you can run or modify it.
Alternatively, you can download the example programs
and execute them on your locally installed Curry system.
% Numerous people have contributed directly and indirectly to Curry.
% We are grateful to the following people for
% discussions, comments and suggestions: ...
\part{Language Features}
\include{introduction}
\include{start}
\include{features}
\part{Programming with Curry}
\include{programming}
\include{packages}
\part{Design Patterns}
\include{patterns}
\part{Applications \& Libraries}
\include{html}
\include{libraries}
\include{acknowledgment}
\newpage
\addcontentsline{toc}{chapter}{Bibliography}
\bibliography{biblio}
\bibliographystyle{abbrv}
\newpage
\addcontentsline{toc}{chapter}{Index}
\printindex
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "main_pdf"
%%% End: