Einführung in die Funktionale Programmierung

Beschreibung:

Funktionale Programmierung ist derzeit in aller Munde. Nicht nur die klassischen funktionalen Programmiersprachen erleben einen Aufschwung, auch viele andere Sprachen erweitern ihren Sprachumfang um funktionale Bestandteile. 

In diesem Workshop wollen wir herausfinden, warum dies so ist und was die funktionale Programmierung so besonders macht. Dabei werden wir ganz praktisch vorgehen und unsere Erfahrungen hauptsächlich durch Programmieren gewinnen. Auch das automatisierte Testen soll hierbei nicht zu kurz kommen. Zu guter Letzt schlagen wir eine Brücke zurück zu Ihrer alltäglichen Arbeit und versuchen herauszufinden, wie sich Aspekte der funktionalen Programmierung in das Arbeiten mit nicht-funktionalen Sprachen wie Java, C# oder C++ einbringen lassen.

Inhalt:

  • Einführung
  • Warum eigentlich funktionale Programmierung?
  • Erste Schritte in einer funktionalen Programmiersprache
  • Funktionen, Currying
  • Listen, Tupel
  • Typinferenz
  • Polymorphe Typen, Typklassen
  • Pattern Matching
  • Lambda Expressions
  • Algebraische Datentypen
  • Rekursive Funktionen
  • Rekursive Datentypen, Zusammenhang mit rekursiven Funktionen
  • Bibliotheksfunktionen: filter, map, fold/reduce, ...
  • Ein- und Ausgaben (Konsole, Dateien)
  • Automatisiertes Testen
  • Property-Based Testing mit QuickCheck
  • Funktionale Programmierung in nichtfunktionalen Sprachen