Inhalt
Die Lehrveranstaltung gibt eine Einführung in die funktionale
Programmierung, wobei sowohl Anwendungsbeispiele an Hand von OCaml (einer funktionalen
Programmiersprache), als auch die theoretischen Grundlagen behandelt
werden.
Ein Skriptum
ist verfügbar.
Zeitplan
Woche |
Datum |
Themen |
Folien |
Quelltext |
Proseminar |
|
1 |
05.10. |
historical overview, OCaml introduction, first steps |
pdf (1x1)
|
tar.gz |
pdf |
|
2 |
12.10. |
lists, polymorphism, higher-order functions |
pdf (1x1)
|
tar.gz |
pdf |
|
3 |
19.10. |
modules, strings |
pdf (1x1)
|
tar.gz |
pdf pdf pdf |
|
4 |
09.11. |
user-defined types, trees |
pdf (1x1)
|
tar.gz |
pdf |
|
5 |
16.11. |
lambda-calculus |
pdf (1x1)
|
tar.gz |
pdf |
|
6 |
23.11. |
lambda calculus, evaluation strategies |
pdf (1x1)
|
tar.gz |
pdf |
|
7 |
30.11. |
induction, reasoning about functional programs |
pdf (1x1)
|
|
pdf |
|
8 |
07.12. |
efficiency, tail-recursion |
pdf (1x1)
|
|
pdf |
|
9 |
14.12. |
parsing |
pdf (1x1)
|
tar.gz |
pdf |
|
10 |
11.01. |
types, type checking, type inference |
pdf (1x1)
|
|
pdf |
|
11 |
18.01. |
implementing type inference |
pdf (1x1)
|
tar.gz |
pdf |
|
12 |
25.01. |
lazy evaluation, infinite data structures |
pdf (1x1)
|
tar.gz |
pdf |
|
13 |
01.02. |
first exam |
|
|
|
|
14 |
02.03. |
second exam |
|
|
|
|
15 |
28.09 |
third exam |
|
|
|
|
Literatur
Neben anderen Quellen, wird in der Lehrveranstaltung Material
aus den folgenden Büchern verwendet:
-
Larry C. Paulson, ML for the working programmer (2nd edition),
Cambridge University Press, 1996, ISBN 9780521565431.
-
Richard Bird, Introduction to functional programming using Haskell
(2nd edition),
Prentice Hall Europe, 1998, ISBN 0134843460.
-
Anthony J. Field, Functional Programming,
Addison-Wesley, 1988, ISBN 0201192497.
-
Bruce J. MacLennan, Functional Programming: Practice and theory,
Addison-Wesley, 1990, ISBN 0201137445.
-
Chris Okasaki, Purely functional data structures,
Cambridge University Press, 1999, ISBN 0521663504.
-
Fethi Rabhi and Guy Lapalme, Algorithms: A functional programming
approach, Addison-Wesley, 1999, ISBN 0201596040.
-
Simon Thompson, The craft of functional programming,
Addison-Wesley, 1996, ISBN 0201403579.
Typos
location |
wrong |
correct |
course notes, p21, Listing 2.1 |
(n-1) |
n |
course notes, p53 |
be repeated |
by repeated |
course notes, p79, Definition of range |
n::acc |
(n-1)::acc |
course notes, p80, Exercise 7.3, definition of reverse |
let reverse |
let rec reverse |
course notes, p80, Exercise 7.3, definition of reverse |
append xs [x] |
append (reverse xs) [x] |
course notes, p80, Hint of Exercise 7.3 |
rev |
reverse |
course notes, p80, Hint of Exercise 7.3 |
append xs (append ys zs) = append xs (append ys zs) |
append xs (append ys zs) = append (append xs ys) zs |
course notes, p82, after Example 8.3, type of return |
'a -> 'a t |
'a -> ('a,'t) t |
course notes, p83, function parse |
input |
s (2x) |
course notes, p94, Exercise 8.1 |
drop superfluous "}" |
|
course notes, p95, Exercise 8.3 |
drop "parser such that" |
|
course notes, p101 |
an inference rules |
an inference rule |
course notes, p102,l3 |
E, |
E |
course notes, p121,Exercise 10.4 |
[1;2;3;4;4;6;7;8;10;...] |
[1;1;2;3;4;4;6;7;8;10;...] |