Inhalt
Die Lehrveranstaltung gibt eine Einführung in die funktionale Programmierung, wobei sowohl Anwendungsbeispiele an Hand von Haskell (einer rein funktionalen Programmiersprache), als auch die theoretischen Grundlagen behandelt werden.
Zeitplan
Übungsaufgaben befinden sich jeweils am Ende eines Foliensatzes.
Woche | Datum | Themen | Folien | Unterlagen | Quelltext | Musterlösungen |
---|---|---|---|---|---|---|
1 | 06.10. | historical overview, Haskell introduction, first steps | pdf (4x1) | html | ||
2 | 13.10. | lists, polymorphism, higher-order functions, types and classes | pdf (4x1) | Archiv | html | |
3 | 20.10. | modules, strings, list comprehensions, recursive functions | pdf (4x1) | Archiv | html | |
4 | 27.10. | user-defined types, trees, input and output | pdf (4x1) | Archiv | html | |
5 | 03.11. | lambda-calculus | pdf (4x1) | Archiv | ||
6 | 10.11. | evaluation strategies | pdf (4x1) | Archiv | html | |
7 | 17.11. | induction, reasoning about functional programs | pdf (4x1) | |||
8 | 24.11. | efficiency, tail-recursion | pdf (4x1) | html | ||
9 | 01.12. | combinator parsing / functional parsers | pdf (4x1) | Archiv | html | |
10 | 15.12. | types, type checking | pdf (4x1) | |||
11 | 12.01. | type inference | pdf (4x1) | Archiv | ||
12 | 19.01. | lazy evaluation, infinite data structures | pdf (4x1) | Archiv | ||
13 | 26.01. | monads | pdf (4x1) | Archiv |
Literatur
Neben anderen Quellen, wird in der Lehrveranstaltung Material aus den folgenden Büchern verwendet:- Graham Hutton, Programming in Haskell, Cambridge University Press, 2007, ISBN 9780521692694.
- Richard Bird, Introduction to Functional Programming using Haskell (2nd edition), Prentice Hall Europe, 1998, ISBN 0134843460.
- Bryan O'Sullivan et al., Real World Haskell, (frei verfügbar) O'Reilly, 2008, ISBN 9780596514983.
- Simon Thompson, Haskell: The Craft of Functional Programming, Addison-Wesley, 1996, ISBN 0201403579.
- Chris Hankin, An Introduction to Lambda Calculi for Computer Scientists, King's College Publications, ISBN 0954300653.