Funktionale und Imperative Programmierung
Worum geht es in diesem Kapitel?
In diesem Kapitel werden zentrale Unterschiede zwischen dem funktionalen und dem imperativen Programmierparadigma hervorgehoben und miteinander verglichen.
Dabei werden die grundlegenden Denkweisen beider Paradigmen dargelegt und die Bedeutung von Funktionen als grundlegendes Konstruktionsprinzip in der funktionalen Programmierung hervorgehoben. Dem für imperative Programme charakteristische Konzept der Zustandsänderungen wird die Unveränderlichkeit von Daten im funktionalen gegenübergestellt. Dabei wird die Bedeutung der Konzepte für Seiteneffekte und die referenzielle Transparenz behandelt.
Mit Funktionen höherer Ordnung findet sich ein funktionales Konzept wieder, welches auch Einzug in viele imperative Sprachen (darunter Python und Java) gefunden hat. Hierbei wird auch auf das Vorhandensein multiparadigmatischer Sprachen eingegangen, da viele moderne Sprachen keine strikte Trennung der Paradigmen aufweisen.
Für den Paradigmenvergleich finden sich in diesem Kapitel zwei analoge Unterkapitel. Im ersten wird die Programmiersprache Python als imperative Vergleichssprache genutzt, im zweiten Kapitel die Programmiersprache Java.