Inhalte:
Grundlagen der Berechenbarkeit:
● Lambda-Kalkül
● primitive Rekursion
● μ-Rekursion
Einführung in die Funktionale Programmierung (Haskell):
● Syntax (Backus-Naur-Form); primitive Datentypen, Listen, Tupel, Zeichenketten
● Ausdrücke, Funktionsdefinitionen, Rekursion und Iteration
● Funktionen höherer Ordnung, Polymorphie
● Typsystem, Typherleitung und Überprüfung
● Algebraische und abstrakte Datentypen
● Ein- und Ausgabe
● Such- und Sortieralgorithmen
Beweisen von Programmeigenschaften:
● Termersetzung
● strukturelle Induktion
● Terminierung
Implementierung und Programmiertechnik:
● Auswertungsstrategien für funktionale Programme
● Modularer Programmentwurf.