The students gain a comprehensive theoretical and practical understanding of the foundations and concepts of functional programming, learn to valuate their eligibility for the solution of programming tasks, and to apply them adequately and meaningfully in the functional programming style.
The course introduces the principles and concepts of functional programming, where it stretches from the foundations to the application. Using concrete problems as examples it will be demonstrated and discussed how to use them for solving problems in the complementary plenary tutorial Haskell Live. Own proposals to solve specific problems can be presented and put up for discussion. Practical assignments as part of the lab tutorial offer the opportunity to independently apply and practice the functional programming style, and to gain a deep practical understanding of the concepts and principles of functional programming. For demonstration and implementation in course and tutorials the state-of-the-art functional programming language Haskell is used.
The course considers in particular the following topics and their realization in Haskell:
- Functional programming style (programs as systems of recursive functions)
- Lambda-calculus (basis of the semantic foundation of functional programming languages)
- Evaluation strategies for expressions and programs (eager evaluation, lazy evaluation)
- Recursion and kinds of recursion
- Higher-order functions (programming with functions as arguments and results)
- Polymorphism (parametric, ad-hoc)
- Type systems, type inference (monomorphic, polymorphic)
- Streams and stream processing
- ...
Die Vorbesprechung zur Vorlesung findet am Freitag, den 01.10.2010, von 14:15 bis ca. 15:00 Uhr im Heinz-Parkus-Hörsaal 8 im Haupthaus am Karlsplatz statt! Unmittelbar anschließend findet von 15:00 Uhr bis 16:30 Uhr an gleicher Stelle die erste Vorlesung statt.