Inhalt:

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

 

 

Literatur

 

 

  • Simon Thompson: Haskell: The Craft of Functional Programming, 2nd Edition, Addison-Wesley, 1999
  • Graham Hutton: Programming in Haskell, Cambridge University Press, 2007
  • Bird, R./Wadler, Ph.: Einführung in Funktionale Programmierung, Hanser Verlag, 1982
  • Hans Hermes: Aufzählbarkeit, Entscheidbarkeit, Berechenbarkeit, Springer-Verlag 1978
  • Raul Rojas: A Tutorial Introduction to the Lambda Calculus, 2015, online:  https://arxiv.org/pdf/1503.09060.pdf
  • Marco Block, Adrian Neumann: Haskell-Intensivkurs, Springer, 2011, online aus dem FU-Netz verfügbar: https://link.springer.com/book/10.1007/978-3-642-04718-3

 

 

Zusätzliche Informationen

 

 

Übung siehe 19300004