Functional Programming

Auch bekannt unter:

  • Funktionale Programmierung

Wikipedia

Functional Programming ist ein Programmierparadigma, bei dem Software durch die Verwendung von reinen Funktionen (engl. "pure functions") entwickelt wird. Eine reine Funktion liefert bei den gleichen Eingabeparametern immer das gleiche Ergebnis und Nebenwirkungen (engl. "Side Effects") werden vermieden. Funktionen in funktionalen Programmiersprachen werden als "Objekte erster Klasse" behandelt, das heißt, dass Funktionen beispielsweise selbst als Funktionsparameter, Funktionsergebnisse oder Variablen verwendet werden können. Funktionen, die selber Funktionen als Eingabeparameter erhalten, nennt man Funktionen höherer Ordnung.

Im Gegensatz zur objektorientierten Programmierung können Daten nach der Erzeugung nicht mehr verändert werden. Will man beispielsweise aus einer Liste jedes zweite Element streichen, ist dies nur insofern möglich, indem man eine neue Liste erzeugt bei der jedes zweite Element fehlt. Die alte Liste wird dabei nicht angetastet. Dieses Prinzip der "Immutability" vermeidet störende Nebeneffekte und vermindert die Fehleranfälligkeit bei wachesenden und komplexen Softwareprojekten.

Einige der bekannten funktionalen Programmiersprachen sind Common Lisp, Clojure, Erlang, Elixir, Haskell und F#. Viele Multi-Paradigmen Programmiersprachen erlauben es mittlerweile neben einem objektorientiertem oder imperativen Programmierstil auch einen funktionalen zu verwenden.