Functional Programming
Auch bekannt unter:
- Funktionale Programmierung
Quellen und weiterführende Links:
- Wikipedia (deutsch)
- MDN Web Docs: First-class function (deutsch)
Functional Programming Functional Programming ist ein Programmierparadigma, bei dem Software durch die Verwendung von reinen Funktionen entwickelt wird und Daten "immutable" sind. 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 Elixir ist eine dynamische, funktionale und nebenläufige Programmiersprache, die auf der Programmiersprache Erlang aufbaut., Haskell und F#. Viele Multi-Paradigmen Programmiersprachen erlauben es mittlerweile neben einem objektorientiertem oder imperativen Programmierstil auch einen funktionalen zu verwenden.
Verwandte Technologien und Begriffe:
- Elixir Elixir ist eine dynamische, funktionale und nebenläufige Programmiersprache, die auf der Programmiersprache Erlang aufbaut.
- Phoenix Phoenix ist ein serverseitiges, quelloffenes Webframework. Es verwendet die funktionale Programmiersprache Elixir und das Model-View-Controller-Pattern.
- Reactive Programming Reactive Programming ist ein Programmierparadigma, das Datenflüsse und die automatische Weitergabe von Änderungen in den Mittelpunkt stellt.