Funktionale Programmierung ist nicht nur ein akademisches Konzept. Pure Functions, Immutability und Composition führen zu sauberem Code.
Kernprinzipien¶
- Pure Functions: Gleicher Input → gleicher Output, keine Seiteneffekte
- Immutability: Daten werden nicht verändert, sondern neu erstellt
- First-class Functions: Funktionen als Werte
- Composition: Zusammensetzen kleiner Funktionen
Praktische Beispiele¶
Python — map, filter, reduce¶
from functools import reduce numbers = [1, 2, 3, 4, 5] doubled = list(map(lambda x: x * 2, numbers)) evens = list(filter(lambda x: x % 2 == 0, numbers)) total = reduce(lambda a, b: a + b, numbers)
List comprehension (pythonic)¶
doubled = [x * 2 for x in numbers] evens = [x for x in numbers if x % 2 == 0]
Composition¶
from functools import reduce def compose(*fns): return reduce(lambda f, g: lambda x: f(g(x)), fns) process = compose(format_output, validate, parse_input) result = process(raw_data)
JavaScript FP¶
const users = [{ name: ‘Jan’, age: 30 }, { name: ‘Eva’, age: 25 }]; const names = users.map(u => u.name); const adults = users.filter(u => u.age >= 18); const totalAge = users.reduce((sum, u) => sum + u.age, 0); // Immutability const updated = { …user, age: 31 }; // Spread, keine Mutation const newList = […items, newItem];
Wichtigste Erkenntnis¶
Pure Functions für Testbarkeit, Immutability für Vorhersagbarkeit, map/filter/reduce statt for-Schleifen.