Funktionale Programmierung mit Python

Note: No audio until 10:10.

Summary

In den letzten Jahren hat die funktionale Programmierung wieder mehr Aufmerksamkeit erhalten. Das Vorurteil nur für akademische Nutzer interessant zu sein hat sich stark abgeschwächt. Haskell, Erlang und F# sind funktionale Programmiersprachen, die verstärkt für praktische Zwecke zum Einsatz kommen.

Python unterstütz mehrere Programmierparadigmen. Neben der prozeduralen und objektorientierten unterstütz es auch wichtige Konzepte der funktionalen Programmierung. Der Vortrag zeigt wie sich diese Merkmale wie Funktionen als Objekte erster Klasse, Funktionsabschlüsse (Closures), Funktionen ohne Seiteneffekte, Currying, verzögerte Auswertung, Vermeidung veränderlicher Datenstrukturen und Einsatz von Iteratoren, Generator und Comprehensions anstatt von Schleifen nutzen lassen. Beispiele verdeutlichen die Vor- und Nachteile des funktionellem Ansatzes für verschiedene Aufgaben.

Der Aufbau eines Programms mit funktionalen Ansatz kann sich stark von dem eines objektorientierten unterscheiden. Beispiele zeigen wie mit Python Teile eines Programms die Vorteile der funktionalen Programmierung nutzen können und sich schrittweise funktionale Prinzipien in objektorientierte Programme einbeziehen lassen.

Der Vortrag verdeutlicht wie das Modul itertools die verzögerte Auswertung unterstützt. Mit den Funktionen dieses Moduls lassen sich Algorithmen oft kurz, gut lesbar und effizient umsetzen. Auch hier ist eine Integration in sonst nicht-funktional geschriebene Programme einfach möglich.