Funktionale Programmierung in Python- Konzepte und Anwendungen
Funktionale Programmierung in Python: Konzepte und Anwendungen
Ein praxisorientierter Leitfaden zur funktionalen Denkweise und deren Umsetzung in Python
Inhaltsverzeichnis
Kapitel 1: Einführung in funktionale Programmierung
- Was ist funktionale Programmierung?
- Unterschiede zur imperativen und objektorientierten Programmierung
- Vorteile: Unveränderlichkeit, Testbarkeit, Lesbarkeit
- Python als multiparadigmatische Sprache
Kapitel 2: Funktionen als First-Class Citizens
- Funktionen als Argumente und Rückgabewerte
- Lambda-Funktionen und anonyme Funktionen
- Mini-Projekt: Mathematischer Funktionsgenerator
Kapitel 3: Höhere Ordnung und Closures
- Funktionen höherer Ordnung
- map(), filter(), reduce() in der Praxis
- Closures und encapsulierte Zustände
- Mini-Projekt: Datenverarbeitung mit map und filter
Kapitel 4: Rekursion und Tail Call Optimization
- Rekursive Funktionen vs. Schleifen
- Tail Recursion und Python-Einschränkungen
- Mini-Projekt: Fakulätsberechnung und Traversierung von Bäumen
Kapitel 5: Unveränderlichkeit und pure Funktionen
- Was sind pure Funktionen?
- Vorteile bei Nebenläufigkeit und Testen
- Strategien zur Vermeidung von Seiteneffekten
- Mini-Projekt: Reine Finanzberechnungen implementieren
Kapitel 6: Funktionen mit functools und itertools
- functools.partial, reduce, lru_cache
- itertools.chain, cycle, groupby, tee
- Mini-Projekt: Textanalyse mit groupby und counter
Kapitel 7: Funktionskomposition und Pipelines
- Funktionen verketten und modularisieren
- Eigene Compose-Funktion schreiben
- Anwendung in Datenpipelines
- Mini-Projekt: Datenaufbereitung durch funktionale Kette
Kapitel 8: Funktionale Datenstrukturen
- Tupel, frozenset, NamedTuple, dataclasses
- Immutable-Tools wie pyrsistent und immutables
- Mini-Projekt: Immutable Konfiguration mit Validierung
Kapitel 9: Fehlerbehandlung funktional lösen
- Monaden-ähnliche Patterns (Maybe, Either) in Python
- Rückgabewerte als Struktur statt Exception
- Mini-Projekt: Sicherer Parser mit Fehlerketten
Kapitel 10: Funktionale Programmierung in der Praxis
- Funktionale Patterns im Alltag
- Integration in OOP-Projekte
- Wann funktional, wann nicht?
- Mini-Projekt: Funktionale Transformation in ETL-Pipeline
Anhang A: Vergleich funktionaler Konzepte in Python vs. Haskell
- lambda, map, compose, monad, pure, etc.
Anhang B: Nützliche Bibliotheken und Tools
- toolz, fn.py, returns, pyrsistent, more-itertools, expression
Anhang C: Übungsaufgaben mit Lösungen
- Funktionskomposition
- Verarbeitung von Listen mit filter und reduce
- Rekursive Funktion mit Fehlerfall
- Lösungen mit Kommentaren und schrittweiser Erklärung