Einführung
Die Lehrveranstaltung gibt eine Einführung in das funktionale Programmieren, wobei sowohl die theoretischen Grundlagen, als auch Anwendungsbeispiele an Hand von OCaml (einer nicht-reinen und strikten funktionalen Programmiersprache) behandelt werden.
Woche 1: | historical overview, OCaml introduction |
Woche 2: | lists, polymorphism, higher-order functions |
Woche 3: | modules, strings |
Woche 4: | user-defined types, trees |
Woche 5: | sets, lambda-calculus |
Woche 6: | evaluation strategies, implementing lambda |
Woche 7: | induction, reasoning about functional programs |
Woche 8: | efficiency, tail-recursion |
Woche 9: | combinator parsing |
Woche 10: | type checking, type inference |
Woche 11: | lazy evaluation, infinite data structures |
Woche 12: | monads |
Woche 13: | advanced topics |
Literatur
Neben anderen Quellen, wird in der Lehrveranstaltung Material aus den folgenden Büchern verwendet (nach Relevanz gereiht):- 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.