|
According to the Computer Science program of 1993, version of fall
2002, the course Praktische Informatik 3 - Functionales
Programmieren (practical computer science - functional
programming) shall cover the following topics:
- Foundations of functional programming:
- Expressions and their evaluation
- Function definition by recursive equations
- Pattern matching
- Evaluation, reduction, normalform
- Higher order functions, currying
- Polymorphism
- Type correctness and type inference
- Types:
- Algebraic data types
- Standard data types (Lists, Cartesian products, lifting) and
standard functions (fold, map, filter)
- Trees
- Graphs
- Structuring and Specification:
- Modules
- Interfaces
- Abstract data types
- Signatures and axioms
- Theoretic aspects:
- Denotational semantics
- Referential transparency
- Term rewriting and lambda calculus
- Proof by structural induction
- Program development by transformation
- Advanced functional programming:
- Monads
- Funktional I/O with Monads
- Overloading, type classes, constructor classes
- Polymorphic recursion
- Strict and lazy evaluation
- Infinite data types, co-induction
- Extensions of the type system
|
|