Die Mathematik im funktionalen Programmieren
Vortragender: Nicolas Neuß
Inhalt: Ähnlich wie die gesamte Mathematik vom Begriff der Menge
ausgehend formuliert werden kann, kann man sie vom Begriff der
Funktion ausgehend entstehen lassen. Dieser Zugang wurde von dem
Amerikaner Alonzo Church unter dem Namen Lambda-Kalkül entwickelt.
Der Lambda-Kalkül kennt im wesentlichen nur zwei Operationen, nämlich
die Funktionsdefinition (Abstraktion) und die Funktionsanwendung
(Applikation). Trotzdem ist diese Kombination so mächtig, dass man
sehr leicht die grundlegende Mathematik damit formulieren kann kann.
In meinem Vortrag will ich dies praktisch vorführen. Die funktionale
Programmiersprache Scheme enthält den Lambda-Kalkül als Kern und
eignet sich daher sehr gut für diese Vorführung. Wir werden in einer
Scheme-Umgebung mit nur drei Operationen starten, nämlich den beiden
oben erwähnten (Abstraktion und Applikation), sowie mit der
Möglichkeit von Syntax-Transformationen, die nur dazu dienen, die
Kombination von Lambda-Ausdrücken lesbarer zu machen. Trotz dieses
spartanischen Anfangs werden wir in weniger als 50 (sehr kurzen)
Zeilen lesbaren Programmcodes natürliche Zahlen und die Arithmetik
darauf zur Verfügung haben. In weiteren 20 Zeilen können wir dann
nach Lust und Laune auch beliebige rekursive Funktionen definieren,
so dass man sehen kann, dass auch komplizierteren Anforderungen keine
prinzipiellen Hindernisse mehr im Weg stehen werden.