Funktionale Programmierung: Data-oriented Programming
Die Funktionale Programmierung hält unter dem Namen "Data-oriented Programming" endlich Einzug in Mainstream-Sprachen wie Java oder C#. Auch (und gerade) in Kotlin lassen sich funktionale
Modellierungskonzepte ohne Umwege abbilden. Das Programmieren und Modellieren mit unveränderlichen Daten erfordert allerdings auch ein Umdenken beim Programmierer.
In diesem Workshop konzentrieren wir uns auf dieses neue Paradigma. Wir diskutieren zunächst die allgemeinen Vorteile (und Nachteile) der datengetriebenen Modellierung, lernen den Umgang mit Produkt- und Summentypen kennen und gehen dann zu fortgeschrittenen Themen über: Wir lernen das Mantra "Make Illegal States Unrepresentable" kennen, wir diskutieren die Begriffe
"Kombinatormodell" und "Algebra" und betrachten Patterns wie den
Zipper, Continuations, "Trees that grow" oder "Data types à la carte".
Lernziele
- Systematische Datenmodellierung
- Funktionale Methoden der Abstraktion
- Umgang mit Produkt- und Summentypen
- Algebra und Kombinatormodell
- Fortgeschrittene Patterns der funktionalen Programmierung