Functional Programming
Funktionale Programmierung stellt reine Funktionen, unveränderliche Daten und einen deklarativen Stil in den Mittelpunkt und vermeidet Seiteneffekte und gemeinsamen Zustand.
Zweck
Zuverlässigen, testbaren Code durch Funktionskomposition und unveränderliche Daten aufbauen.
Mechanismus
Reine Funktionen (ohne Seiteneffekte), Unveränderlichkeit, Funktionen höherer Ordnung, lazy evaluation, Funktionskomposition, Currying. Haskell ist rein funktional; Scala/JS sind multiparadigmatisch. Stärken: testbar, parallelisierbar, gut begründbar. Schwächen: Lernkurve, Performance.
Anwendungsfälle
- Code-Design
- Nebenläufigkeitssicherheit
- Testbarkeit