Zunächst ein für Laien nur schwer verständliches Programmierparadigma, das sich von prozeduralen oder objektorientierten Konzepten mehr oder weniger scharf abgrenzt.
Und worum geht’s nun konrekt, ohne seitenlangen Ausflug in Richtung Lambda-Kalkül?
Funktionaler Code sagt dem Computer in eleganter, knapper Form, WAS er tun soll anstatt ausführlich aufzulisten, WIE er Aufgaben zu erledigen hat. Basis der funktionalen Programmierung sind dabei rekursive Funktionen. Indem Funktionen höherer Ordnung eingesetzt werden (die andere Funktionen als Parameter verwenden oder als Ergebnis ausspucken – Mathe! Kopfschmerzen!), lassen sich ruckzuck komplexe, anpassungsfähige Computation Patterns kreieren.
Im Gegensatz zu anderen Paradigmen sind bei der Funktionalen Programmierung Variablen feste Namen für bestimmte Werte – und nicht variable Namen für Speicherbereiche. Gerechnet wird auf Grundlage funktionaler Beschreibung, weswegen die Funktionale Programmierung auch dem Hauptparadigma der Deklarativen Programmierung zugeschlagen wird.
Funktionale Programmierung gilt als schick, effizient und frei von „side effects“, ist jedoch nicht universell und in jedem Kontext einsetzbar.
Neben rein funktionalen, extrem strengen Sprachen wie Haskell gibt es viele multiparadigmatische Sprachen mit funktionalen Ansätzen, darunter auch das immens populäre JavaScript. Wie man in dieser großen Websprache funktional programmiert und warum das manchmal eine gute Idee ist, zeigen u.a. diese beiden neuen Bücher: